Extension Methods
확장 메서드(Extension Methods)는 기존의 클래스나 구조체에 새로운 메서드를 추가하는 방법입니다. 이는 원래의 코드를 수정하지 않고도 해당 타입에 새로운 기능을 확장할 수 있게 해줍니다. 확장 메서드를 작성하려면 메서드가 포함된 클래스를 static으로 선언하고, 해당 메서드도 static으로 선언해야 합니다. 메서드의 첫 번째 매개변수는 this 키워드와 함께 확장하려는 타입을 지정합니다.
아래는 확장 메서드의 몇 가지 예제입니다:
String 타입에 대한 확장 메서드:
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string value)
{
return string.IsNullOrEmpty(value);
}
}
// 사용 예
string testString = null;
bool result = testString.IsNullOrEmpty(); // true를 반환
List에 특정 조건의 항목이 있는지 확인하는 확장 메서드:
public static class ListExtensions
{
public static bool ContainsEvenNumber(this List<int> numbers)
{
return numbers.Any(n => n % 2 == 0);
}
}
// 사용 예
List<int> numbers = new List<int> { 1, 3, 5, 7, 8 };
bool containsEven = numbers.ContainsEvenNumber(); // true를 반환
Integer 값이 홀수인지 확인하는 확장 메서드:
public static class IntegerExtensions
{
public static bool IsOdd(this int value)
{
return value % 2 != 0;
}
}
// 사용 예
int number = 5;
bool isOdd = number.IsOdd(); // true를 반환
확장 메서드는 기존 타입에 새로운 메서드를 추가하려는 경우 유용하게 사용됩니다. 단, 확장 메서드는 원래의 타입을 변경하거나, 그 타입에 접근할 수 없는 private 필드나 메서드에 접근할 수 없습니다.
'워크 > C# 3.0' 카테고리의 다른 글
Partial Methods (0) | 2023.08.26 |
---|---|
Anonymous Types (0) | 2023.08.26 |
Lambda Expressions (0) | 2023.08.26 |
LINQ (Language Integrated Query) (0) | 2023.08.26 |
Auto-Implemented Properties (0) | 2023.08.26 |