[C# 7.0] 람다식을 이용한 메서드 정의 확대

람다 식으로 정의가 가능한 유형은 다음과 같다.일반 메서드속성의 get/set인덱서의 get/set생성자종료자이벤트의 add/remove✍ 샘플코드

2023년 1월 14일
·
0개의 댓글
·

[C# 7.0] Deconstruct

튜플의 반환값을 분해하는 구문을 원한다면 Deconstruct 메서드를 1개 이상 정의하여 구현할 수 있다. 분해가 되는 개별값을 out 매개변수를 이용해 처리하면 된다.✍ 샘플코드✅ 결과

2023년 1월 14일
·
0개의 댓글
·

[c# 7.0] 튜플(Tuple)

c여러 값을 인자로 또는 반환값으로 쓰고 싶을 때, 아래의 옵션을 고려할 수 있다.✍ 별도의 클래스원하는 값을 멤버변수로 담을 수 있는 별도의 클래스를 일일이 만드는 것은 귀찮다. ✍ dynamic 예약어정적 형식 검사를 할 수 없어 필드 이름이 바뀌어도 컴파일 시 문

2023년 1월 14일
·
0개의 댓글
·

[C# 7.0] ref returns and locals

c✍ 로컬 변수에 ref✍ 반환값에 ref✅ 결과✍ 컴파일 오류1 : 지역변수지역변수의 유효범위가 스택 상에 있을 때로 한정되기 때문에 메서드의 실행이 끝나 호출 측에 넘어가는 시점에 스택이 해제되어 return re로 반환받은 인스턴스가 남아있을 거라는 보장을 할 수

2023년 1월 14일
·
0개의 댓글
·

[C# 7.0] 편리해전 out 매개변수

c✍ c\`\`\`csint result;int.TryParse("50", out result);Console.WriteLine(result);c✍ 중복 변수 선언 오류\_c\`\`\`csint.TryParse("50", out int result);Console.Wr

2023년 1월 14일
·
0개의 댓글
·

[C# 6.0] 예외 필터(Exception filter)

비주얼베이직과 Ftry { } catch (예외타입 e) when (조건식) { }✍ 샘플 코드조건식이 실행되는 시점은 처리 핸들러가 실행되는 시점이 아니기 때문에 아래와 같이 부가적인 작업을 할 수 있다.위의 코드가 아래의 코드와 동일하다고 생각할 수 있다.그러나 두

2023년 1월 9일
·
0개의 댓글
·

[C# 6.0] Dictionary 초기화

기존 방식위의 코드는 아래와 같이 컴파일 된다.새로운 방식위의 코드는 아래와 같이 컴파일 된다.기존 키 값을 덮어쓰기 때문에 다음과 같이 작성하여도 오류가 발생하지 않는다.

2023년 1월 9일
·
0개의 댓글
·

[c# 6.0] nameof 연산자

위의 코드에서 PrintInfo의 첫번째 인자인 name을 fullName으로 이름을 바꾸려고 하면, 식 안의 name도 컴파일 에러가 뜨면서 fullName으로 바꿀 것을 강제한다. 그러나 출력 결과에 쓰일 리터럴은 여전히 name으로 남아있다는 문제가 있다.

2023년 1월 9일
·
0개의 댓글
·

[C# 6.0] null 조건 연산자

null 조건 연산자: 참조 변수의 값이 null이라면 그대로 null을 반환하고, null이 아니라면 지정된 멤버를 호출한다.✍ 참조변수의 멤버 접근 시 ?✍ 배열 인덱스 접근 시 ?✍ nullable 형식의 사용✍ ??✍ 효율성 고려

2023년 1월 7일
·
0개의 댓글
·

[C# 6.0] using static

기존에는 '타입명.static메소드명' 으로 호출하지만,이제는 'using static 타입의전체이름'을 선언하면타입명 없이 바로 메소드를 호출할 수 있다.✍ 기존의 static 메서드 호출✍ using staticenum 타입의 멤버와 const 상수 멤버도 컴파일하

2023년 1월 7일
·
0개의 댓글
·

[C# 6.0] 람다 식을 이용한 메서드, 속성, 인덱서 정의

식(expression)0개 이상의 연산자(operator)에 의해 결합되어 단일 값으로 계산할 수 있는 경우에는 식이다.메서드 호출, 리터럴 자체도 식이다.(x>=100) && (x<300)Console.WriteLine("test");"I am good."문(

2023년 1월 7일
·
0개의 댓글
·

[C# 6.0] 자동 구현 속성의 초기화 구문

c> public string PropertyName {get; set;} = "Initial Value"l;✍ 샘플 코드

2023년 1월 7일
·
0개의 댓글
·

[C# 5.0] 비동기 호출의 반환 타입

Task, Task<Result>는 비동기 처리를 위해 내부적인 존재가 되어있기 때문에, await에 따른 코드를 Task에 맡김으로써 비동기 기능을 간편하게 구현할 수 있다.Task 타입을 await 없이 쓰는 것도 가능하며, ThreadPool.QueueUse

2022년 12월 21일
·
0개의 댓글
·

[C# 5.0] 비동기 호출

C📝 동기 호출📝 비동기 호출📝 동기와 비동기의 쓰레드 차이✅ SyncPrint 호출 시 결과Read를 실행하기 전과 후의 쓰레드가 변하지 않는다.✅ AsyncPrint 호출 시 결과await 아래의 구문부터는 쓰레드 아이디가 변화하였다. await 이후의 코드는

2022년 12월 21일
·
0개의 댓글
·

[C# 5.0] 호출자 정보

호출자 정보 : 호출하는 측의 정보를 선택적 매개변수로 전달할 수 있다. 컴파일 시 호출자의 정보의 값으로 치환된다.CallerMemberName : 호출한 메서드 명CallerFilePath : 호출한 소스코드의 파일 경로CallerLineNumber : 호출한 소스

2022년 11월 25일
·
0개의 댓글
·

[C# 4.0] Dynamic 예약어

CLR을 바탕으로 한 DLR(Dynamic Language Runtime) 라이브러리를 통해, 루비나 파이썬 같은 동적 언어도 닷넷 프레임워크에 실행될 수 있다. 이런 동적 언어로 만들어진 프로그램의 타입을 정적 언어인 C#에 연동하기 위해 dynamic 예약어가 제공

2022년 10월 5일
·
0개의 댓글
·

[C# 4.0] 선택적 매개변수(Optional Parameter)

선택적 매개변수(optional parameter)을 이용하여 매개변수 중 값이 전달되지 않은 인자가 있을 때 미리 지정된 기본값을 사용할 수 있다.💡 샘플 코드✅ 결과optional parameter는 ref, out 예약어와 함께 사용할 수 없다.optional

2022년 10월 4일
·
0개의 댓글
·

[C# 3.0] 지연 실행

LINQ 쿼리의 반환 타입이 IEnumerable, IOrderedEnumerable인 경우 lazy evaluation 또는 deferred execution 방식으로 동작한다.💡 샘플 코드✅ 결과Where절은 foreach문에서 열거자를 통해 요소를 순환할 때 F

2022년 10월 3일
·
0개의 댓글
·

[C# 3.0] 람다

람다 식은 익명 메서드의 간편 표기 용도로 사용된다.1\. 람다 메서드와 익명 메서드💡 샘플 코드컴파일러는 Thread 타입의 생성자가 "void(object obj)" 형식의 델리게이트 인자를 받는다는 것을 알고 있으므로, 개발자가 람다식을 사용하여 delegate

2022년 10월 3일
·
0개의 댓글
·

[C# 3.0] Extension Method

기존 클래스를 상속하지 않고 기존 클래스의 내부 구조를 전혀 바꾸지 않고도, 새로운 메서드를 추가할 수 있게 하는 것이 확장 메서드이다.확장 메서드는 static 클래스 내의 static 메서드로 this 예약어 매개변수를 이용하여 구현한다.✍ 샘플 코드✅ 결과위의 코

2022년 9월 12일
·
0개의 댓글
·