본문 바로가기

워크/C# 3.0

Extension Methods

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