2010-03-07 7 views

답변

8

개체의 인스턴스에서 확장 메서드가 호출됩니다.

myObj.ExtensionMethod(); 

정적 클래스가있는 경우 인스턴스를 가질 수 없습니다. 따라서, 확장 메소드를 호출 할 아무 것도 없습니다.

+0

답변 해 주셔서 감사합니다. 그것은 수치이지만 큰 손실은 아닙니다. – dotnetdev

5

의도적으로 extension method이 클래스의 인스턴스를 가져야하므로 첫 번째 매개 변수로 확장됩니다. 그리고 그것은 정적 클래스이고 인스턴스를 가질 수 없기 때문에 분명히 File의 인스턴스를 전달할 수 없습니다.

5

역순으로 표현하면 definition of any extension method을 보면 첫 번째 매개 변수는 항상 this 키워드에 의해 입증 된 개체의 인스턴스입니다. 인스턴스가 없기 때문에 논리적으로이 동작은 정적 클래스에서 작동하지 않습니다.

확장 방법의 샘플 -

public static class MyExtensions 
{ 
    public static int WordCount(this String str) 
    { 
     return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length; 
    } 
} 
관련 문제