본문 바로가기

728x90

Programming/C#

(6)
C# dynamic csharp 컴파일 시점이 아닌 런타임 시점에서 형식이 정해지는 특수한 유형의 형식dynamic 키워드는 데이터 형식 자리에 오지만 특정 데이터 형식을 지칭하지 않음var 키워드는 컴파일할때 데이터 형식을 결정동적 형식은 다른 동적 언어와 통신에 유용dynamic은 컴파일 시점에서는 데이터 형식이 결정되지 않기 때문에 인텔리센스의 도움을 받을 수 없음dynamic x;x = 1234;Console.WriteLine($"{x} {x.GetType()}");//1234 System.Int32x = "abcd";Console.WriteLine($"{x} {x.GetType()}");//abcd System.String컴파일 시점에는 에러가 없으나 런타임 시점에서 에러 발생dynamic now = DateTime.Now;i..
C# 튜플 tuple csharp C# 7.0 버전부터 제공하는 튜플(tuple)은 값을 한 번에 하나 이상 전달하거나 제공받을 때 사용하는 데이터 구조 튜플 리터럴: 변수에 괄호를 사용하여 값을 하나 이상 설정하는 것var r = (12, 34, 56);//기본 형태 Item1, Item2, .. 형태Console.WriteLine($"{r.Item1}, {r.Item2}, {r.Item3}");//12, 34, 56var square = (Width:1920, Height:1080);//이름 지정Console.WriteLine($"{square.Width}, {square.Height}");//1920, 1080(ushort Width, ushort Height) square = (1444, 720);//이름과 형식 지정Console..
C# 델리게이트 메소드 함수 포인터 delegate void MyDelegate(); delegate void MyDelegate2(int i); delegate void MyDelegate3(string str); static void MyMethod() { Console.WriteLine("Hello"); } static void MyMethod2(int i) { Console.WriteLine($"Hello {i}"); } static void MyMethod3(MyDelegate myDelegate) => myDelegate(); static void MyMethod4(String str) { Console.WriteLine(str); } static void MyMethod5(Func myFu..
C# 웹소켓 WebSocket 주요 메서드 정리 C# Serverapp.UseWebSockets();if (!context.WebSockets.IsWebSocketRequest){ context.Response.StatusCode = 400; return;}using WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();while (webSocket.State == WebSocketState.Open){ var result = await webSocket.ReceiveAsync(new ArraySegment(buffer), CancellationToken.None); string message = Encoding.UTF8.GetString(buffer, 0, ..
C# 비동기 프로그래밍 예제 Asynchronous programming Task void async await using System.Threading.Tasks;class MainClass{ static async Task Main(string[] args) { Task t5 = MyAsync.DoAsync(5); // 5초 await MyAsync.DoAsync(3); // 3초 MyAsync.DoAsync(2); // 2초 await t5; }}public class MyAsync{ public static async Task DoAsync(int num = 1) { for(int i = num; i > -1; i--) { await Task.Delay(1000); // 1초 기다림 ..
람다 표현식 예제1기본 코드 : 매개변수 1개Action action = delegate(string message){ Console.WriteLine($"메시지: {message}");}; 1. delegate 글자 지우고 => 를 소괄호 뒤에 추가 Action action = (string message) =>{ Console.WriteLine($"메시지: {message}");}; 2. 표현식 하나만 있을 경우 return, 중괄호 생략 가능Action action = (string message) => Console.WriteLine($"메시지: {message}"); 3. 매개변수 타입을 추론할 수 있으므로 생략Action action = (message) => Console.WriteLine($..

728x90