我不记得我听说过的关于编程 c# 的术语,比如
var x= obj.A()
.B()
.C()
.ETC()
我越来越多地看到这一点,我想知道如何构建这样的代码。
这种风格通常被称为“流利”
这种风格的一些背景是http://en.m.wikipedia.org/wiki/Fluent_interface
github上有几个很好的repos可以查看使用这种方法的库 - 例如流利验证 - https://github.com/JeremySkinner/FluentValidation
这被称为Fluent interface
。
流畅的接口通常是通过使用方法链接来中继后续调用的指令上下文来实现的(但流畅的接口不仅仅需要方法链接)。一般来说,上下文是:
- 通过被调用方法的返回值定义
- 自引用,其中新上下文等同于最后一个上下文
- 通过返回 void 上下文而终止。
你可以从fluent-interface标签中学到很多东西。