2013년 4월 15일
C#으로 짜여진 소스를 분석하다가 도무지 이해할 수 없는 코드가 있어서 찾아보다가 새로운 기능을 알게되었다.
C++로만 작업하다가 급 C#으로 넘어가게 되어서 생소한 부분들이 많았는데 이 것도 참 생소한 개념!
내가 본 소스의 내용은 이랬다.
기본적인 내용만 있는(멤버변수 선언과 싱글톤으로 사용하기 위한 객체 할당부분) 클래스가 있었고 이 클래스에 대한 구체적인 내용은 구현되어 있지 않았는데 이 클래스의 객체를 통해 다른 static class의 메소드들을 사용하고 있었던 것!
아니 어떻게 이게 가능하지...? 한참 고민하다 찾아보니 바로 "확장 메소드" 라는 개념이었다.
이 확장 메소드를 사용하기 위한 포인트는 확장 클래스가 static으로 선언되어야 하고 메소드들도 static으로 선언 되어야 한다는 것!
그리고 "this [모체가 되는 클래스 객체]" 형태의 매개변수가 필요하다.
테스트 해본 소스에서 User가 모체가 되는 클래스이고 UsetSet이 확장 메소드를 사용하기 위한 클래스이다.
'Programming > C#' 카테고리의 다른 글
[ASP.NET MVC] InputStream의 Position 값 문제.. (0) | 2013.05.20 |
---|---|
[ASP.NET MVC] AsyncController 테스트 (1) | 2013.04.22 |
[ASP.NET MVC] Controller 테스트 (0) | 2013.04.16 |
[C#] Attribute 활용 (0) | 2013.04.15 |
댓글