我正在尝试按照这篇文章: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();
}
我在哪里粘贴这段代码?
编辑:按照vlad的回答
我将此代码粘贴在Builder和Create类
的位置public static partial class BuilderExtensions
{
}
然后,对于需要添加构建器的任何命名空间,我将其粘贴在同一类文件中的构建器类下面:
public static partial class BuilderExtensions
{
public static CostBuilder Cost(this Builder s)
{
return new CostBuilder();
}
}
答案 0 :(得分:1)
根据MSDN,Extension methods
可以在“非嵌套的非泛型静态类中定义”。
在这种特殊情况下,您可以将其添加到静态BuilderUtilities
类。
答案 1 :(得分:1)
扩展方法必须放在静态类中。
public static class BuilderExtensions {
public static CostBuilder Cost(this Builder s) {
return new CostBuilder();
}
}
您可以将public
声明中的BuilderExtensions
关键字更改为internal
,以使扩展方法对您的API的使用者不可见。