본문 바로가기

분류 전체보기

(150)
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 함..
Expression-bodied function members (식 본문 함수 멤버) C# 6.0에서 도입된 식 본문 함수 멤버는 메서드, 속성, 인덱서 또는 읽기 전용 속성의 본문을 간결하게 표현하는 데 사용됩니다. 기본적으로 이 기능은 본문이 한 줄로 표현되는 함수 멤버를 더 간결하게 표현할 수 있게 해줍니다. 다음은 식 본문 함수 멤버를 사용한 예시 C# 코드입니다: using System; public class Circle { public double Radius { get; set; } // 식 본문을 사용한 메서드 public double CalculateArea() => Math.PI * Radius * Radius; // 식 본문을 사용한 읽기 전용 속성 public double Diameter => 2 * Radius; // 식 본문을 사용한 읽기 전용 속성 public..
Exception Filters (예외 필터) C# 6.0에서 도입된 예외 필터는 catch 절에서 예외를 처리하기 전에 추가적인 조건을 제공하여 특정 조건이 충족될 때만 해당 catch 절을 실행하게 할 수 있습니다. 예외 필터를 사용하면, 다양한 종류의 예외나 특정 조건에 따라 다른 처리 로직을 적용할 때 코드를 더욱 간결하고 명확하게 만들 수 있습니다. 다음은 예외 필터를 사용한 예시 C# 코드입니다: using System; class Program { static void Main() { try { // 임의로 예외를 발생시킴 throw new ArgumentException("This is an argument exception", "testParam"); } catch (ArgumentException ex) when (ex.ParamN..
String Interpolation (문자열 보간) C# 6.0에서 도입된 문자열 보간은 문자열 형식 지정을 보다 읽기 쉽고 유지 관리하기 쉽게 만들어줍니다. 문자열 보간을 사용하면 문자열 리터럴 내에서 중괄호 { } 안에 직접 변수나 표현식을 삽입할 수 있습니다. $ 기호를 문자열 앞에 붙여 문자열 보간을 나타냅니다. 다음은 문자열 보간을 사용한 예시 C# 코드입니다: using System; public class Student { public string FirstName { get; set; } public string LastName { get; set; } public DateTime BirthDate { get; set; } } class Program { static void Main() { var student = new Student {..
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"; /..