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();
}

我在哪里粘贴这段代码?

编辑:每弗拉德的回答

我将这段代码卡在了 Builder 和 Create 类所在的位置

public static partial class BuilderExtensions
{
}

然后对于需要添加构建器的任何命名空间,我将其粘贴在同一类文件中的构建器类下方:

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

2 回答 2

1

扩展方法必须放在静态类中。

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

您可以更改声明中的public关键字以使扩展方法对您的 API 的使用者不可见。BuilderExtensionsinternal

于 2013-04-22T20:00:42.823 回答
1

根据MSDNExtension methods可以定义为“在非嵌套、非泛型静态类中”。

在这种特殊情况下,您可以将其添加到静态BuilderUtilities类中。

于 2013-04-22T19:59:52.353 回答