[C#] this

oy Hong·2024년 4월 11일

기술

목록 보기
10/23

클래스의 현재 인스턴스 this


흔히 다른 언어에서도 지원하는 것으로 클래스의 현재 인스턴스를 가리키는 키워드이다. 매개변수 이름과 클래스 필드가 이름이 같다면 this로 구분할 수 있게 된다.


정적 함수 파라미터의 this

정적 함수 파라미터에 하는 this확장 메서드를 만드는데 사용되는 키워드이다.

public static void Shuffle<T>(this IList<T> list)


이를 활용하면 멤버 함수를 호출하듯 함수를 호출할 수 있게 된다.

List<MyClass> exList = new List<MyClass>();
//...
Shuffle(exList);  // 이렇게도 되고
exList.Shuffle(); // 이렇게도 된다


이런 식으로 클래스나 인터페이스를 확장할 수 있게 된다.

주의
기존 클래스의 함수와 동일한 시그니처로 정의하면 확장 메서드가 우선순위에서 밀려 호출되지 않게 된다.

  • 확장 메서드는 컴파일 타임에 바인딩된다.

0개의 댓글