Having Collection initializers in C#并被允许define properties of a class without having to call the constructor,在C#中使用Method Chaining有什么意义吗? 我什么也看不见。也许我在这里错过了什么?
由于
答案 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);
}