如果我有一個項目在C#中的列表(例如List<string> items
),我可以同時使用:.Count爲什麼沒有括號?
items.Count()
和
items.Count
獲得項目的總數。他們都有可用的理由嗎?爲什麼不只是有方法.Count()
?
我注意到,如果我過濾列表(以及,並用IEnumerable<string>
結束):
items.Distinct().Count()
然後.Count()
必須被使用。那麼爲什麼List<string>
完全允許.Count
?
它不是一個類的屬性它是一個接口'ICollection'的屬性,看看這裏http://msdn.microsoft.com/pl-pl/library/92t2ye13(v=vs.110).aspx – wudzik
@wudzik how如果它是在接口中定義的,它是不是類的屬性:)接口是一個簽名而不是實現。因此它是一個類的一個屬性,它恰好被接口強制執行。 – Alex
類'列表'屬性'Count'屬於'List '類。如果這個類實現了'ICollection '接口,那麼這個屬性仍然屬於這個類。一個接口定義了一個契約,讓我說出這樣一句話:''如果你(類)要被標記爲我的(接口)實現,你必須具備這些要求。「',需求(在這種情況下爲Count屬性)屬於這個類。 (我使用'List '和'ICollection '爲例子,但是這個概念適用於實現接口的類的任何情況。) –