【发布时间】:2016-07-18 05:13:24
【问题描述】:
见以下代码:
new ConditionCreator()
.Add()
.Or()
.Add()
.And()
.Add()
我想为此创建一个流畅的界面 但是我需要, 在 Add() 方法开发人员之后只能看到 Or() 或 And() 和 在其中之一之后,请参见 Only Add() 方法。
所以没有人能写出这样的代码:
new ConditionCreator()
.Add()
.Add()
.Add()
.Or()
.And()
.Add()
.And()
.And()
我想限制某些方法可以接受特殊方法等。 我可以在一个类中编写所有方法并为每个方法返回这个,但这不合适!!!
请指导我如何编写高级流畅界面类。
【问题讨论】:
-
查看 FluentAssertions 的代码库:github.com/dennisdoomen/FluentAssertions 他们可能已经拥有您需要的东西。
-
您接受的答案仍然可以允许
new ConditionCreator() .Add().Or().And().And().And()。这是你想要的还是我误解了你的问题。 -
有关如何正确解决此问题的更多详细信息,请参阅我的更新答案。
标签: c# fluent-interface method-chaining