Greg young的Fluent Interface是如何工作的?
本文关键字:工作 何工作 young Fluent Interface Greg | 更新日期: 2023-09-27 18:10:36
我正在尝试遵循这篇文章: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();
}
我该把这段代码放在哪里?
编辑:Per vlad的回答我把这段代码卡在Builder和Create类
的地方public static partial class BuilderExtensions
{
}
然后,对于任何需要添加构建器的命名空间,我将其放在同一个类文件中的构建器类下面:
public static partial class BuilderExtensions
{
public static CostBuilder Cost(this Builder s)
{
return new CostBuilder();
}
}
根据MSDN, Extension methods
可以定义在"非嵌套的,非泛型的静态类"中。
在本例中,可以将其添加到静态BuilderUtilities
类中。
扩展方法必须放在静态类中。
public static class BuilderExtensions {
public static CostBuilder Cost(this Builder s) {
return new CostBuilder();
}
}
您可以将BuilderExtensions
声明中的public
关键字更改为internal
,以保持扩展方法对API的消费者不可见。