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

在C#中使用方法链接是否值得?,c#,method-chaining,C#,Method Chaining,如果允许,在C#中使用方法链接有什么意义吗? 我什么也看不见。也许我遗漏了什么 谢谢一个常见的用法是 编辑:为了回答注释中的问题,属性/集合初始值设定项相当有限,因为您只能对集合设置属性或调用Add方法,而方法调用更灵活,因为它们可以接受多个参数 fluent接口只是方法链接的一种特定用途,用于生成更可读的API,通常用于对象生成器 另外,由于对象初始化器不允许您绕过构造函数,因此MSDN文章有很大的误导性,只是在示例中,StudentName类有一个默认构造函数,它什么也不做。一个常见用法是

如果允许,在C#中使用方法链接有什么意义吗? 我什么也看不见。也许我遗漏了什么

谢谢

一个常见的用法是

编辑:为了回答注释中的问题,属性/集合初始值设定项相当有限,因为您只能对集合设置属性或调用Add方法,而方法调用更灵活,因为它们可以接受多个参数

fluent接口只是方法链接的一种特定用途,用于生成更可读的API,通常用于对象生成器

另外,由于对象初始化器不允许您绕过构造函数,因此MSDN文章有很大的误导性,只是在示例中,
StudentName
类有一个默认构造函数,它什么也不做。

一个常见用法是

编辑:为了回答注释中的问题,属性/集合初始值设定项相当有限,因为您只能对集合设置属性或调用Add方法,而方法调用更灵活,因为它们可以接受多个参数

fluent接口只是方法链接的一种特定用途,用于生成更可读的API,通常用于对象生成器

另外,由于对象初始化器不允许您绕过构造函数,MSDN文章有很大的误导性,只是在示例中,
StudentName
类有一个默认构造函数,它什么都不做。

LINQ

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

这是为什么方法链接很方便的一个很好的例子

public void GetData(int? id)
{
    // Check all preconditions:
    Condition.Requires(id)
        .IsNotNull()
        .IsInRange(1, 999)
        .IsNotEqualTo(128);
}
这是为什么方法链接很方便的一个很好的例子

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

我并不是在问他们有什么共同的用途,我是说,如果在C语言中使用“旧”方法链接,因为你既有集合又有属性初始化器。方法链接和fluent接口之间到底有什么区别?@Lee:+1引用了误导性的MSDN文章。我也要做同样的事情。是的,我知道构造函数是误导的,但是我懒得更客观:(我不是问他们有什么共同用途,我是说,如果你有两个集合和属性初始化器,那么在C语言中使用“旧”方法链接是有意义的。“旧”方法链接to be.btw,方法链接和fluent接口之间到底有什么区别?@Lee:+1引用了误导性的MSDN文章。我也准备这么做。是的,我知道构造函数的东西是误导性的,但我懒得更客观:(你是否特别想问,与方法链接的其他用途相比,使用方法链接来构建复杂对象是否有任何意义?我主要考虑的是构建属性对象,因为这是我经常看到的示例。但似乎我已经忘记了像LINQ这样的示例,在LINQ中,你实际上是在链接一组属性对象操作。你是否特别想问,与方法链接的其他用途相比,使用方法链接来构建复杂对象是否有任何意义?我主要考虑的是构建属性对象,因为这是我经常看到的示例。但似乎我已经忘记了像LINQ这样的示例,在这里你实际上是在链接对象一组动作。