언어/C#

확장 메서드(Extension Method)

에린_1 2024. 8. 6. 09:42
728x90

확장 메서드(Extension Method)

  • 기존 타입에 새로운 메서드를 추가할 수 있게 해준다. 이는 원본 타입의 소스 코드를 수정하지 않고도 새로운 기능을 추가할 수 있는 강력한 방법이다.

기본 개념

  • 정적 클래스 내에 정의된다.
  • 첫 번째 매개변수에 this 키워드를 사용한다.
  • 이 첫 번째 매개변수는 확장하고자 하는 타입을 나타낸다.

문법

public static class ExtensionClass
{
    public static ReturnType MethodName(this ExtendedType variable, OtherParameters)
    {
        // 메서드 구현
    }
}

특징

  • 원본 타입을 수정하지 않고 새 기능을 추가할 수 있다.
  • 인스턴스 메서드처럼 호출할 수 있다.
  • 네임스페이스를 통해 확장 메서드의 가시성을 제어할 수 있다.

사용 사례

  • 기본 .NET 타입에 유틸리티 메서드 추가
  • 인터페이스에 기본 구현 제공
  • 제네릭 타입에 대한 확장 기능 구현

장점

  • 코드의 가독성과 유지보수성 향상
  • 기존 코드를 변경하지 않고 새 기능 추가 가능
  • 인터페이스에 대한 확장 가능

주의사항

  • 남용하면 코드가 복잡해질 수 있다.
  • 확장 메서드와 인스턴스 메서드 간의 이름 충돌에 주의해야 한다.
  • 확장 메서드는 정적 바인딩을 사용하므로 다형성을 지원하지 않는다.

제약사항

  • 확장 메서드는 static 클래스에서만 정의할 수 있다.
  • 확장 대상 타입의 private 멤버에는 접근할 수 없다.
728x90

'언어 > C#' 카테고리의 다른 글

Google.Protobuf IDeepClonealbe<T>  (0) 2024.08.06
Dictionary<TKey, TValue>  (0) 2024.08.06
bool 함수<TEnum>(this TEnum, params TEnum[])  (0) 2024.08.06
MethodImpl  (0) 2024.08.06
Static extern  (0) 2024.08.06