본문 바로가기

catch와finally에서의await

(8)
Index Initializers (색인 초기화) C# 6.0에서는 딕셔너리 초기화에 새로운 구문이 도입되어, 딕셔너리의 키와 값을 더 간결하게 초기화할 수 있게 되었습니다. 이를 색인 초기화라고 합니다. 기존의 딕셔너리 초기화 방법과 색인 초기화를 사용한 방법을 비교하면 이해가 더 쉽습니다. 기존의 방법: var dictionary = new Dictionary { {"apple", 1}, {"banana", 2}, {"cherry", 3} }; 색인 초기화를 사용한 방법: var dictionary = new Dictionary { ["apple"] = 1, ["banana"] = 2, ["cherry"] = 3 }; 색인 초기화 방식은 대괄호([])를 사용하여 키를 지정하고, 이를 값을 할당하는 형식으로 사용됩니다. 이러한 방식은 특히 기존의 딕셔..
Static Using Statements (정적 using 문) C# 6.0에서 도입된 정적 using 문은 특정 클래스의 정적 멤버를 클래스 이름 없이 바로 사용할 수 있게 해줍니다. 즉, 해당 클래스의 정적 메서드나 속성을 호출할 때 클래스 이름을 매번 앞에 붙이지 않아도 됩니다. 이 기능은 주로 코드의 가독성을 높이고, 특히 수학 함수나 유틸리티 함수 같이 반복적으로 사용되는 정적 메서드의 호출을 간결하게 만들 때 유용합니다. 다음은 정적 using 문을 사용한 예시 C# 코드입니다: using System; using static System.Math; // 정적 using 문 class Program { static void Main() { double x = 2.0; double y = 3.0; // 'Math.'를 사용하지 않고 직접 Sqrt, Pow 함..
Null-conditional Operators (null 조건 연산자) C# 6.0에서 도입된 null 조건 연산자 (?. 및 ?[])는 객체 또는 컬렉션이 null이 아닌 경우에만 멤버나 인덱서에 액세스하려는 경우에 유용합니다. 이 연산자를 사용하면, 객체가 null인지 아닌지에 대한 별도의 검사 없이 안전하게 멤버나 인덱서에 액세스할 수 있습니다. 다음은 null 조건 연산자를 사용한 예시 C# 코드입니다: using System; using System.Collections.Generic; public class Student { public string Name { get; set; } } class Program { static void Main() { Student student = null; // null 조건 연산자를 사용하여 Name 속성에 안전하게 액세스 ..
Nameof Expressions (nameof 연산자) nameof 연산자는 C# 6.0에서 도입되었으며, 변수, 타입 또는 멤버의 이름을 문자열로 가져오는 데 사용됩니다. 이 연산자는 주로 예외 처리, 로깅, 속성 변경 알림과 같은 시나리오에서 변수나 속성의 이름을 하드코딩하지 않기 위해 사용됩니다. nameof를 사용하면 코드의 리팩토링이나 이름 변경 시 문제를 예방할 수 있습니다. 다음은 nameof 연산자를 사용한 예시 C# 코드입니다: using System; public class Student { private string _name; public string Name { get { return _name; } set { if (string.IsNullOrEmpty(value)) { // nameof 연산자를 사용하여 속성의 이름을 동적으로 가져..
Auto-Property Initializers (자동 속성 초기화) C# 6.0에서 도입된 Auto-Property Initializers는 자동 속성을 선언할 때 초기값을 바로 할당할 수 있게 해줍니다. 이 기능은 클래스나 구조체의 인스턴스를 생성할 때 해당 속성에 초기값을 설정하는 데 유용합니다. 기존에는 속성에 초기값을 할당하려면 생성자 내에서 이를 수행해야 했지만, Auto-Property Initializers를 사용하면 더 간결한 코드로 동일한 작업을 수행할 수 있습니다. 다음은 Auto-Property Initializers를 사용한 예시 C# 코드입니다: public class Book { // 자동 속성 초기화를 사용하여 Title의 기본값을 "Unknown"으로 설정 public string Title { get; set; } = "Unknown"; /..
C# 6.0 - 추가적인 팁 기능들을 최대한 활용하는 팁과 그외 주의해야 할 점 등을 함께 알아보겠습니다. Lambda와 Expression-bodied Members 활용 식 본문 함수 멤버는 람다와 유사한 방식으로 코드를 간결하게 만듭니다. 이는 특히 단순한 로직이나 한 줄짜리 함수/속성에 매우 유용합니다. public int Double(int x) => x * 2; nameof 연산자를 활용한 안정적인 코드 작성 nameof 연산자를 사용하면 문자열로 하드코딩된 변수나 속성 이름을 줄일 수 있습니다. 이는 코드의 유지 보수성을 향상시키며, 리팩토링 시 버그 발생 확률을 줄여줍니다. Null-conditional 연산자 주의점 ?. 연산자를 사용하면 null 체크를 간편하게 할 수 있지만, 과도한 사용은 코드의 가독성을 떨어뜨..
C# 6.0 - 더 많은 기능들 오늘은 그 외의 다른 흥미로운 기능들도 함께 알아보겠습니다. Index Initializers (색인 초기화) Dictionary 초기화를 더 간결하게 만들어줍니다. var dict = new Dictionary { ["one"] = 1, ["two"] = 2 }; Await in Catch and Finally blocks (catch와 finally 블록에서의 await) 이제 catch와 finally 블록 내에서도 비동기 작업을 await 키워드를 사용하여 기다릴 수 있습니다. try { // some asynchronous code } catch (Exception ex) { await LogErrorAsync(ex); } finally { await CleanupAsync(); } Extens..
C# 6.0의 주요 특징 오늘은 C#의 특정 버전, 바로 C# 6.0의 주요 특징과 기능에 대해 알아보려고 합니다. C# 6.0은 .NET 개발자들에게 더욱 간결하고 효율적인 코드를 작성하도록 도와주는 여러 가지 신기능을 제공합니다. Auto-Property Initializers (자동 속성 초기화) 이전에는 속성 초기화를 위해서 생성자를 이용해야 했습니다. 그러나 C# 6.0에서는 자동 속성을 선언하면서 초기값을 지정할 수 있게 되었습니다. public class Sample { public string Name { get; set; } = "ChatGPT"; } Nameof Expressions (nameof 연산자) nameof 연산자를 사용하면 변수, 속성, 메서드 등의 이름을 문자열로 가져올 수 있습니다. 이는 리팩토..