如何在C#中创建Fluent接口,对某些方法有一些限制?

Ham*_*thi 8 c# fluent-interface method-chaining

见下面的代码:

new ConditionCreator()
       .Add()
             .Or()
       .Add()
             .And()
       .Add()
Run Code Online (Sandbox Code Playgroud)

我想为此创建一个Fluent接口但是我需要,在Add()方法开发人员看到Only Or()或And()之后,在其中一个之后,请参阅Only Add()方法.

所以没有人可以编写如下代码:

new ConditionCreator()
           .Add()
           .Add()
           .Add()
           .Or()
           .And()
           .Add()
           .And()
           .And()
Run Code Online (Sandbox Code Playgroud)

我希望有一些限制,一些方法可以接受特殊的方法等.我可以在一个类中编写所有方法,并为每一个返回这个,但这是不合适的!

请指导我如何编写Advanced Fluent Interface类.

yaa*_*kov 0

And()考虑返回仅包含和 的接口Or()。例如:

public class ConditionCreator : IFluentAndOr
{
    public IFluentAndOr And() { ... }
    public IFluentAndOr Or() { ... }
}

public interface IFluentAndOr
{
    IFluentAndOr And();
    IFluentAndOr Or();
}
Run Code Online (Sandbox Code Playgroud)