ASP.NET MVC ViewPage에 대한 확장 메서드를 만들었습니다. 예 :
public static class ViewExtensions
{
public static string Method<T>(this ViewPage<T> page) where T : class
{
return "something";
}
}
View에서이 메서드를 호출 할 때 (에서 파생 됨 ViewPage
) 키워드를 사용하여 호출 하지 않으면 " CS0103 : The name 'Method'is not exist in the current context " 오류가 발생 this
합니다.
<%: Method() %> <!-- gives error CS0103 -->
<%: this.Method() %> <!-- works -->
this
키워드가 필요한 이유는 무엇 입니까? 아니면 그것 없이도 작동하지만 뭔가 빠졌나요?
(이 질문의 중복이있는 것 같지만 찾을 수 없었습니다)
업데이트 :
로 벤 로빈슨은 말한다 , 전화 번호 방법에 대한 구문은 컴파일러 설탕이다. 그렇다면 컴파일러가 this 키워드를 요구하지 않고 현재 유형의 기본 유형의 확장 메서드를 자동으로 확인할 수없는 이유는 무엇입니까?