본문 바로가기
C# 비동기 Async, 소켓 서버, 함수 소스 (Socket network) C# 비동기 Async, 소켓 서버, 함수 소스 (Socket network) C# 비동기 소켓 서버를 포함한 비동기 함수, 비동기 서버, 비동기 쓰기, 비동기 읽기 등의 소스입니다. 전체 소스(Visualstudio)와 링크는 아래를 참조하시고, 전체 소스는 본문을 참조하세요. 소스 : Download Asynchronator (Visual Studio Test Project)원문 : Chapter 23: Asynchronous Methods 1. Blocking Socker Server 1234567891011121314151617181920212223242526272829303132333435363738using System;using System.Threading;using System.Net;u.. 2017. 8. 18.
C# 비트연산 - 플래그 응용 (bit flag enum 연산자 예제) C# 비트연산 - 플래그 응용 (bit flag enum 연산자 예제) enum 플래그 속성은 대개 비트 연산자를 다룰 때 사용합니다. 예를 들면 이렇죠. 1myProperties.AllowedColors = MyColor.Red | MyColor.Green | MyColor.Blue;cs 플래그 자체를 더 효율적으로 표현하려면 .ToString()를 사용하는 것이 좋습니다. 123456789enum Suits { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 }[Flags] enum SuitsFlags { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 } ... var str1 = (Suits.Spades | Suits.Di.. 2017. 7. 27.
C# 7세그먼트 디지털 시계, 숫자 (닷넷 UI 라이브러리) C# 7세그먼트 디지털 시계, 숫자 (닷넷 UI 라이브러리) 참조 - Digital display control in C#.Net using GDI+예제 - digital_display_control.zip 아래 그림은 실행했을 때 보여질 화면입니다. 이쁘죠? 첨부된 예제 소스를 열어보면 아래와 같은 dll을 확인할 수 있습니다. 사용하고픈 프로젝트에 두 개의 dll을 참조 추가하면 사용할 수 있는데, 우선은 비주얼 스튜디오의 도구 상자에 dll을 드래그해서 해당 도구를 추가해주세요. 압축 파일을 풀면, ..\digital_display_control\Owf.Controls.DigitalDisplayControl\bin\Debug\Owf.Controls.DigitalDisplayControl.dll 파일.. 2017. 7. 22.
C# 일반, static, sealed, abstract 클래스 차이점 C# 일반, static, sealed, abstract 클래스 차이점 Class 타입 일반 static sealed abstract 객체 생성 YES NO YES NO 상속 YES NO NO YES 상속 (다른곳) YES NO YES YES 그리고 sealed 클래스는 다른 클래스로 상속될 수 없습니다. 오로지 다른 클래스를 상속받는 것만 할 수 있습니다. 123sealed class MySealedClass : BaseClass // is ok class MyOtherClass : MySealedClass // won't compilecs 추신.위 표가 잘린다면 아래 그림을 보세요. C# 일반, static, sealed, abstract 클래스 차이점 2017. 7. 20.
C# byte 배열 빠르게 합치기 (바이트 array) C# byte 배열 빠르게 합치기 (바이트 array) C#에서 바이트 배열 합치기를 시도할 때, System.Buffer.BlockCopy가 System.Array.Copy보다 빠릅니다. 아래는 10 바이트 배열 3개를 1백만 번 반복한 결과로 함수의 수행 시간을 측정한 결과입니다. 바이트 배열 : System.Array.Copy - 0.2187556초바이트 배열 : System.Buffer.BlockCopy - 0.1406286초IEnumerable : C# yield operator - 0.0781270초IEnumerable : LINQ's Concat - 0.0781270초 byte 배열 크기를 100개로 늘리고 다시 테스트한 결과는 아래. 바이트 배열 : System.Array.Copy - 0... 2017. 7. 10.
C# string double 변환 7가지 방법과 재밌는 예제 소스 1개 C# string double 변환 7가지 방법 C# string double 변환 8가지 방법C#에서 float을 string 변환하는 방법입니다. String.Format 또는 double.ToString, float.ToString를 사용할 수 있습니다. 소수점 이하 자리수소수 자리수가 작으면 나머지는 0으로 채워지고 크면 반올림됩니다. 1234// 소수 둘째 자리String.Format("{0:0.00}", 123.4567); // "123.46"String.Format("{0:0.00}", 123.4); // "123.40"String.Format("{0:0.00}", 123.0); // "123.00"cs 1234// 두자리 소수점String.Format("{0:0.##}", 123.4567).. 2017. 7. 3.
C# Dictionary 9가지 사용법, 딕셔너리 예제 Dictionary에 키값 4개를 추가한 뒤 비주얼 스튜디오 디버거를 통해 내용을 확인합니다. Dictionary는 키와 값을 쌍으로 보유합니다. 글 시작 전, 독학으로 공부하는 분들이 많으신데, 국비지원 무료 교육도 함께 알아보세요. 프로그래밍 공부 시작 단계에선 아무래도 혼자보단 여럿이 같이 배우는 게 낫습니다. [▼ 국비지원 내일배움카드 신청하기▼ ] 내일배움카드 발급 자격 확인 및 신청 방법 가이드 - 1mm 내일배움카드 발급 자격과 신청방법에 대해 A to Z 상세하게 가이드로 알려드립니다. kako.co.kr string, int 다른 자료형을 요소로 사용합니다. using System; using System.Collections.Generic; class Program { static vo.. 2017. 7. 2.
C# interop type cannot be embedded (비주얼스튜디오 에러) C# interop type cannot be embedded (비주얼스튜디오 에러) 에러 메시지 : Interop type XXX cannot be embedded. Use the applicable interface instead 비주얼 스튜디오에서 발생하는 에러입니다. 이 경우엔 에러가 발생하는 참조 속성인 Embed Interop Types를 바꿔줍니다. 그리고 이벤트를 사용하지 않을 경우엔 Interop Class를 생성하지 않아도 되니 고려할 필요는 없습니다. 참조 사이트 - Check your Embed Interop Types flag when doing Visual Studio extensibility workC# interop type cannot be embedded (비주얼스튜디오 .. 2017. 6. 23.
C# Console.ReadLine 함수 사용법 (콘솔에서 문자열 처리) C# Console.ReadLine 함수 사용법 (콘솔에서 문자열 처리) Console.ReadLine은 콘솔창에서 입력받는데, 사용자가 엔터를 누르면 문자열을 반환하고 다음 작업을 결정합니다. 사용 예. 개발 과정에선 입력 과정을 반복하는 것이 좋습니다. 아래 예제는 While(true) 무한 반복 루프를 통해 Console.ReadLine() 함수 사용 방법을 나타냅니다. (입력받은 문자열의 길이를 리턴하는 소스) 12345678910111213141516171819202122using System; class Program{ static void Main() { while (true) // Loop indefinitely { Console.WriteLine("Enter input:"); // Pro.. 2017. 6. 23.
C# 3D 프로그래밍, GDI+ Euler Rotation 표현 C# 3D 프로그래밍, GDI+ Euler Rotation 표현 프로젝트 - WindowsApplication2.zip C#에서 3D 구현을 위해 GDI+를 사용하기 위한 기본 구성은 다음과 같습니다. - X, Y, Z의 값을 갖는 클래스를 한 개 생성해야 합니다. - 3D 변환을 위한 공식에 대입될 값들을 조절할 줄 알아야 합니다. - 시점을 설정할 카메라 클래스도 설정해야 합니다. - X, Y, X에 몇 가지 공식을 대입해야 합니다. 직접 2D에서 3D로 변환할 방법은 구체적으론 없지만, 평면에서 이를 조절하는 방안과(Z축의 위치 계산 등) 24개로 이루어진 각 점(정면, 후면, 좌, 우, 상, 하 등 각 4점)의 위치 계산 및 고정을 위한 배열 활용이 중요합니다. 2D 3D간 변환 공식은 아래 사이.. 2017. 6. 20.
C# 메모장 프로그램 (윈도우 notepad 소스 코드) C# 메모장 프로그램 (윈도우 notepad 소스 코드) C# 메모장 소스 코드 - memo.zip 기능별 구현은 아래 소스 보면서 참조하세요. 1. using 1234567891011using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Drawing.Printing;using System.Collections;using Microsoft.Win32;cs 2. 변수 1234567891011121314151617// 폼 파일 객체.. 2017. 6. 12.
C# 코드 최적화 7가지 (작업 속도와 효율성 향상) C# 코드 최적화 7가지 (작업 속도와 효율성 향상) 코드 최적화란 모든 개발자에게 중요한 측면입니다. 이 포스트에서 소개할 여러 팁은 작업 속도와 효율성을 향상해 더 나은 응용 프로그램을 제작할 수 있도록 도울 것입니다. 상용 메모리 관리 툴들은 최적화가 진행 된 응용 프로그램 코드의 질을 더 좋게 평가할 것이며, 메모리 관리 측면에서도 더 나은 결과를 유추할 수 있습니다. 작업 시간도 아낄 수 있으며, 유지 보수 비용도 절약할 수 있는 코드 최적화는 반드시 진행해야 할 사항입니다. 고민하지 말고 무조건 최적화를 하세요. 이 포스트가 그것을 돕습니다. ? 조건 연산자를 사용하세요 ?를 사용하는 것은 전혀 새로운 것이 아니고, 잘만 사용하면 오히려 더 편리합니다. 아마도 ? 연산자는 브라이언 케니건(Br.. 2017. 6. 9.