C# 格雷格·杨(Greg Young';什么是流畅的界面工作?
我试着跟随这篇文章: 我很好地遵循这一点:C# 格雷格·杨(Greg Young';什么是流畅的界面工作?,c#,design-patterns,builder,fluent-interface,method-chaining,C#,Design Patterns,Builder,Fluent Interface,Method Chaining,我试着跟随这篇文章: 我很好地遵循这一点: 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的回答 我将此代码粘贴在生成器和Create类所在的位置 public static part
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的回答
我将此代码粘贴在生成器和Create类所在的位置
public static partial class BuilderExtensions
{
}
然后,对于任何需要添加构建器的命名空间,我将其粘贴在同一类文件中的构建器类下面:
public static partial class BuilderExtensions
{
public static CostBuilder Cost(this Builder s)
{
return new CostBuilder();
}
}
根据,扩展方法
可以“在非嵌套、非泛型静态类中”定义
在这种特殊情况下,您可以将其添加到静态
BuilderUtilities
类。扩展方法必须放在静态类中
public static class BuilderExtensions {
public static CostBuilder Cost(this Builder s) {
return new CostBuilder();
}
}
您可以将BuilderExtensions
声明中的public
关键字更改为internal
,以使扩展方法对API的使用者不可见