在 C# 中拥有 Collection 初始化程序并允许在无需调用构造函数的情况下定义类的属性,在 C# 中使用方法链是否有任何意义?我什么都看不到。也许我在这里遗漏了一些东西?
谢谢
在 C# 中拥有 Collection 初始化程序并允许在无需调用构造函数的情况下定义类的属性,在 C# 中使用方法链是否有任何意义?我什么都看不到。也许我在这里遗漏了一些东西?
谢谢
林克?
var item = sequence.Where(x => x.Age > 100)
.Select(x => new { x.FirstName, x.LastName })
.OrderBy(x => x.LastName)
.FirstOrDefault();
一个常见的用途是流畅的接口
编辑:针对评论中的问题,属性/集合初始化器相当有限,因为您只能设置属性或在集合上调用 Add 方法,而方法调用更灵活,因为它们可以采用多个参数。
流畅的接口只是方法链的一种特定用途,用于生成更具可读性的 API,通常用于对象构建器。
此外,顺便说一句,MSDN 文章非常具有误导性,因为对象初始化器不允许您绕过构造函数,只是在示例中,StudentName
该类有一个默认构造函数,它什么都不做。
CutEdge.Conditions是一个很好的例子,说明为什么方法链接很方便?
public void GetData(int? id)
{
// Check all preconditions:
Condition.Requires(id)
.IsNotNull()
.IsInRange(1, 999)
.IsNotEqualTo(128);
}