블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday



확장메서드(Extension Methods)사용하면 새 파생 형식을 만들거나 다시 컴파일하거나, 원래 형식을 수정하지 않고도 기존 형식에 메서드를 "추가" 할 수 있다. 다시 말해 직접 작성하지 않았거나, 소스코드가 없어서 변경이 불가능한 클래스에 메서드를 추가할 수 있는 편리한 방법이다. 확장 메서드는 특수한 종류의 정적 메서드이지만 확장 형식의 인스턴스 메서드인 것 처럼 호출된다.

 

>> 사용법

 

1. 먼저 예제에 필요한 클래스 파일들을 만들어 보도록 하겠다. 아이템(Item)이라는 모델 클래스와 아이템을 담을 수 있는 아이템박스(ItemBox) 모델 클래스를 정의하도록 하겠다.

 

 - ItemModel 클래스 정의

 

 

 - ItemBoxModel 클래스 정의

 

 

 

2. 확장 메소드를 정의 하도록 하자. 먼저 확장메소드들을 정의할 클래스 파일을 하나 만들고, 아래와 같이 확장메소드 만들어 보자.

 

 

GetTotalPrices메소드는 확장메소드 이며, ItemBoxModel의 인스턴스를 생성하고, 일반 메서드처럼 사용할수 있다. 이를 가능케 하는 이유가 바로 파라미터로 this 키워드이다. this 키워드가 GetTotalPrices메서드를 확장 메서드로 표시해주는 역할을 하기 때문이다.

 

3. 확장 메소드 호출해보자. ItemBoxModel의 인스턴스를 생성하고, 메소드 이름을 찾아보자.

 

 

 

위 코드에서 itemBox하고 점을 찍으면(itemBox. ), 해당 사용할수 있는 메소드들이 나오는데, 아래 그림과 같을 것이다.

 

 

아시다시피 연한보라색박스로 표시되어 있는 것들이 메서드임을 의미한다, 여기서 확장 메서드는 연한보라색박스에 아래로 화살표가 표시되어 있어, 어떤것이 확장메서드인지 구분할 수 있다.

 

 

MSDN 참고 : http://msdn.microsoft.com/ko-kr/library/bb383977.aspx

Posted by happydong
, |