是否值得在C#中使用方法链接?

时间:2010-05-21 16:12:56

标签: c# method-chaining

Having Collection initializers in C#并被允许define properties of a class without having to call the constructor,在C#中使用Method Chaining有什么意义吗? 我什么也看不见。也许我在这里错过了什么?

由于

3 个答案:

答案 0 :(得分:8)

LINQ?

var item = sequence.Where(x => x.Age > 100)
                   .Select(x => new { x.FirstName, x.LastName })
                   .OrderBy(x => x.LastName)
                   .FirstOrDefault();

答案 1 :(得分:6)

常见用途是fluent interfaces

编辑:在回复评论中的问题时,属性/集合初始化程序相当有限,因为您只能在集合上设置propeties或调用Add方法,而方法调用更灵活,因为它们可以采用多个参数。

流畅的界面只是方法链的一个特定用途,用于生成更易读的API,通常用于对象构建器。

另外,除了MSDN文章之外,由于对象初始化程序不允许您绕过构造函数,因此只是在示例中,StudentName类具有默认构造函数,它什么都不做。< / p>

答案 2 :(得分:4)

CuttingEdge.Conditions是一个很好的例子,为什么方法链很方便?

public void GetData(int? id)
{
    // Check all preconditions:
    Condition.Requires(id)
        .IsNotNull()
        .IsInRange(1, 999)
        .IsNotEqualTo(128);
}