Having Collection initializers in C#並被允許爲define properties of a class without having to call the constructor,在C#中使用方法鏈接有什麼意義嗎? 我看不到任何東西。也許我在這裏錯過了一些東西?是否值得在C#中使用方法鏈接?
感謝
Having Collection initializers in C#並被允許爲define properties of a class without having to call the constructor,在C#中使用方法鏈接有什麼意義嗎? 我看不到任何東西。也許我在這裏錯過了一些東西?是否值得在C#中使用方法鏈接?
感謝
LINQ?
var item = sequence.Where(x => x.Age > 100)
.Select(x => new { x.FirstName, x.LastName })
.OrderBy(x => x.LastName)
.FirstOrDefault();
的常見用法是fluent interfaces
編輯:針對在評論的問題,物業/收集initialisers是相當有限的,你只能設置化子性質或致電一個Add方法集合,而方法調用更靈活,因爲它們可以採用多重參數。
流暢的接口只是方法鏈接的一個特定用途,用於生成更易讀的API,通常用於對象構建器。
此外,作爲MSDN文章是相當誤導性的,因爲對象初始器不允許您繞過構造函數,只是在該示例中,StudentName
類具有默認的構造函數,它什麼都不做。
我不問他們有什麼共同的用途,如果在C#中使用「舊」方法鏈接有任何意義,因爲你有集合和屬性初始值設定項。 – 2010-05-21 16:15:56
@devoured極樂世界:也許你需要告訴我們你認爲「老」的方法鏈接。 – LukeH 2010-05-21 16:18:44
http://en.wikipedia.org/wiki/Method_chaining – 2010-05-21 16:19:20
CuttingEdge.Conditions是方法鏈接爲什麼方便的一個很好的例子?
public void GetData(int? id)
{
// Check all preconditions:
Condition.Requires(id)
.IsNotNull()
.IsInRange(1, 999)
.IsNotEqualTo(128);
}
好的例子,確實如此。 – 2010-05-21 17:13:19
您是否在具體詢問在構建複雜對象*時使用方法鏈是否有任何意義,而不是其他方法鏈的使用? – 2010-05-21 16:20:49
我主要在構建屬性對象,因爲這是我通常看到的例子。但似乎我已經忘記了像LINQ這樣的例子,你真的在鏈接一系列的動作。 – 2010-05-21 16:29:10