[C#] 확장 매서드 extend method
(라이브러리에 매서드를 추가할 수 있다?)
만약에 우리가 라이브러리를 구매해서 사용하는데 (클래스라고 할께요) 이 클래스에 우리가 원하는 매서드를 추가하면 참 편하게 프로그래밍할 수 있는데 라이브러리는 이미 기계어로 컴파일되어있기에 수정이 참 거의 불가능하죠 그래서 이 때 사용할 수 있는게 바로 C#의 확장매서드(extend method) 기능입니다.
위 코드를 한번 쭉 읽어주세요.
Point클래스를 누가 만들어 놓은 클래스라고 가정합니다. 그리고 우리는 Print라는 매서드를 추가해서 사용하고 싶다면,
우선 첫번째로 static 클래스가 필요합니다. 위에서는 AAA클래스가 되겠죠.
그리고 두번째로 public static 매서드가 필요합니다. C#에서는 수신기라고 표현하는 것 같은데 잘 모르겠습니다.
무튼 마지막으로 해당 매서드에 매개변수로 (this 확장할클래스 arg) 이런식으로 지정해 주면되겠습니다. 여기서는 object라고 되어있는데... 이유는 이따 설명하고
우리는 Point클래스에 매서드를 추가하고 싶은거기 때문에 this Point arg 이런식으로 작성해줍니다. 그리고 arg를 사용해서 우리가 원하는 처리를 해주면 되겠습니다. 이렇게 해주면 Point객체에서 우리가 추가해준 Print매서드를 위와 같이 사용할 수 있는 것을 알 수 있습니다.
아까 위에서 그럼 왜 object를 써주었냐면, C#에서는 객체가 모두 object를 기본적으로 상속하고 있기에 object를 사용하면 모든 객체에서 우리가 만들어준 Print를 사용할 수 있다는 것을 알아보기 위해서 작성한 예제라고 생각하시면 되겠습니다. 대단하죠..?
그럼 다음 포스팅에서 뵙겠습니다. .
'C#(.NET)' 카테고리의 다른 글
[C#] 데이터 보관하기 (변수에 저장) (0) | 2020.06.12 |
---|---|
[C#] Hello World 시작하는 코드 (1) | 2019.11.15 |
[C-sharp#] Timers event 타이머 이벤트 사용 (0) | 2018.04.07 |
[C#] IEnumerable Interface 열거자 인터페이스 (0) | 2018.04.07 |
[C#] 복습 참조복사 값복사 (얕은 복사, 깊은 복사) (1) | 2018.04.05 |