0

나는이 문서를 따라하기 위해 노력하고있어 :Greg Young의 Fluent Interface는 어떻게 작동합니까?

Now that I have these I can decorate the Builder with extension methods like: 

public static CostBuilder Cost(this Builder s) 
{ 
    return new CostBuilder(); 
} 

은 어디에서이 코드 조각을 스틱 않습니다 : 잘이 시점까지 함께 따라 http://codebetter.com/gregyoung/2007/12/05/a-use-for-extension-methods/

를?

편집 : 블라드의 대답

당 나는 Builder와 만들기 클래스, 내가 빌더 클래스 아래에이 빌더를 추가해야 할 필요가있는 네임 스페이스에 대한 다음

public static partial class BuilderExtensions 
{ 
} 

부착 된 코드를 부착 같은 클래스 파일 :

public static partial class BuilderExtensions 
{ 
    public static CostBuilder Cost(this Builder s) 
    { 
     return new CostBuilder(); 
    } 
} 

답변

1

으로 MSDNExtension methods은 비 중첩, 제네릭이 아닌 성 내부에 "정의 할 수 있습니다 atic 클래스 ".

이 특별한 경우이를 정적 BuilderUtilities 클래스에 추가 할 수 있습니다.

1

확장 메서드는 정적 클래스에 배치해야합니다.

public static class BuilderExtensions { 
    public static CostBuilder Cost(this Builder s) { 
     return new CostBuilder(); 
    } 
} 

당신은 당신의 API의 소비자에게 보이지 않는 확장 방법을 유지하기 위해 internalBuilderExtensions 선언에서 public 키워드를 변경할 수 있습니다.