0

Я пытаюсь следовать этой статье: http://codebetter.com/gregyoung/2007/12/05/a-use-for-extension-methods/Как работает Свободный интерфейс Грега Янга?

я следую вдоль прекрасно до этого момента:

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

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

Где я придерживаюсь этот кусок кода?

EDIT: За ответ Владу

я застрял этот код, где Builder и создать класс

public static partial class BuilderExtensions 
{ 
} 

Тогда для любого пространства имен, которое нужно иметь добавил строитель, я застрял в этом под классом строителя в том же файле класса:

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

ответ

1

согласно MSDN, Extension methods могут быть определены «внутри невложенных, необщего ул атический класс ».

В этом конкретном случае вы можете добавить его в статический класс BuilderUtilities.

1

Методы расширения должны быть размещены в статических классах.

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

Вы можете изменить public ключевое слово в BuilderExtensions декларации internal сохранить методы расширения, невидимые для потребителей вашего API.

Смежные вопросы