본문 바로가기

워크/C# 3.0

(9)
Collection Initializers Collection Initializers (컬렉션 초기화자) 컬렉션 초기화자는 C# 3.0에서 도입된 기능으로, 컬렉션 객체를 초기화할 때 간결하게 여러 항목을 추가할 수 있게 합니다. 컬렉션 초기화자는 Add 메서드를 가진 타입에 사용될 수 있으며, 주로 리스트, 딕셔너리 등의 컬렉션 타입에 사용됩니다. 다음은 컬렉션 초기화자의 몇 가지 예시입니다: List의 초기화: List numbers = new List { 1, 2, 3, 4, 5 }; Dictionary의 초기화: Dictionary nameToAge = new Dictionary { { "John", 30 }, { "Jane", 25 }, { "Mike", 40 } }; Queue와 Stack의 초기화: Dictionary nameToAg..
Object Initializers Object Initializers (객체 초기화자) 객체 초기화자는 C# 3.0에서 도입된 기능으로, 객체를 생성하고 동시에 그 속성을 초기화하는 더 간결하고 가독성 높은 방식을 제공합니다. 이를 통해 여러 줄의 코드 없이 객체의 여러 속성을 한번에 설정할 수 있습니다. 다음은 객체 초기화자의 사용 예시입니다: 기본적인 객체 초기화자 사용법: public class Person { public string Name { get; set; } public int Age { get; set; } } // 객체 초기화자를 사용한 객체 생성 및 초기화 Person john = new Person { Name = "John", Age = 30 }; 중첩된 객체 초기화: public class Address { p..
Partial Methods Partial Methods (부분 메서드) 부분 메서드는 C#에서 partial 클래스, 구조체 또는 인터페이스의 일부로 선언될 수 있는 특별한 메서드입니다. 부분 메서드는 메서드의 선언 부분과 구현 부분을 분리하여 정의할 수 있습니다. 구현되지 않은 부분 메서드는 컴파일 타임에 자동으로 제거됩니다, 즉 실행 시에 아무런 효과가 없습니다. 다음은 부분 메서드의 예시입니다: 부분 클래스와 부분 메서드 선언: MyPartialClass.cs 파일: public partial class MyPartialClass { partial void PartialMethod(); public void PublicMethod() { // 부분 메서드 호출 PartialMethod(); } } MyPartialClass...
Anonymous Types Anonymous Types (익명 타입) 익명 타입은 C# 3.0에서 도입된 기능으로, 이름이 없는 임시 객체 타입을 생성할 수 있습니다. 이는 주로 LINQ 쿼리에서 결과를 투영하거나 반환할 때 유용하게 사용됩니다. var 키워드와 함께 사용되어 컴파일 타임에 타입이 결정됩니다. 아래는 익명 타입의 몇 가지 예제입니다: 기본적인 익명 타입 생성: var person = new { Name = "John", Age = 30 }; Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // 출력: Name: John, Age: 30 리스트에서 익명 타입을 사용하여 선택적 정보 추출: class Product { public int Id { get; ..
Extension Methods Extension Methods 확장 메서드(Extension Methods)는 기존의 클래스나 구조체에 새로운 메서드를 추가하는 방법입니다. 이는 원래의 코드를 수정하지 않고도 해당 타입에 새로운 기능을 확장할 수 있게 해줍니다. 확장 메서드를 작성하려면 메서드가 포함된 클래스를 static으로 선언하고, 해당 메서드도 static으로 선언해야 합니다. 메서드의 첫 번째 매개변수는 this 키워드와 함께 확장하려는 타입을 지정합니다. 아래는 확장 메서드의 몇 가지 예제입니다: String 타입에 대한 확장 메서드: public static class StringExtensions { public static bool IsNullOrEmpty(this string value) { return string..
Lambda Expressions Lambda Expressions 람다 표현식은 C# 3.0에서 도입되었으며, 익명 함수를 간결하고 읽기 쉬운 방식으로 표현할 수 있게 합니다. 람다 표현식은 => 연산자를 사용하여 정의됩니다. 아래는 람다 표현식의 몇 가지 예제입니다. 기본적인 람다 표현식: Func add = (x, y) => x + y; Console.WriteLine(add(3, 5)); // 출력: 8 List에서 조건에 맞는 항목 찾기: List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evenNumbers = numbers.Where(n => n % 2 == 0); foreach (var num in evenNumbers) { Console.WriteLine(nu..
LINQ (Language Integrated Query) LINQ (Language Integrated Query) LINQ는 C#에서 데이터를 쿼리하는 강력한 기능입니다. .NET의 다양한 데이터 소스 (컬렉션, 데이터베이스, XML 등) 에 대한 쿼리를 작성할 수 있게 해줍니다. LINQ는 일반적으로 선언적 형식으로 쿼리를 작성하게 해주며, C#과 자연스럽게 통합되어 있습니다. 아래는 LINQ의 몇 가지 기본적인 예제입니다. 기본적인 List 쿼리: List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var evenNumbers = from num in numbers where num % 2 == 0 select num; foreach (var num in evenNumbers) { Console.Wri..
Auto-Implemented Properties Auto-Implemented Properties Auto-Implemented Properties는 C# 3.0에서 도입된 기능으로, 프로퍼티를 정의할 때 백업 필드를 직접 작성하지 않아도 되는 기능입니다. 기존에는 프로퍼티의 백업 필드를 직접 정의하고, getter와 setter를 통해 해당 필드에 접근하게 되었지만, Auto-Implemented Properties를 통해 이러한 과정을 간소화할 수 있습니다. 기존 방식: private string _name; public string Name { get { return _name; } set { _name = value; } } Auto-Implemented Properties 방식: public string Name { get; set; } 이렇..