2011-09-02 72 views
7

我有時會發現自己在提及IEnumerable<Foo>時想到要使用什麼單詞。我不認爲在閱讀時我會看到一致的命名。你叫什麼IEnumerable <Foo>?

IEnumerable<Foo>:這是一個類型名稱。思考或在句子中使用時沒有幫助。

收藏:這是有效的,但不是到處被使用。雖然我們有System.Collections命名空間。

序列:這是太有效,可能更好定義。

枚舉器迭代器:他們強調操作,很少使用。

什麼是最合適的?你在代碼中讀到了什麼?

+0

我主要是指**集合** :) – Samich

+0

標記CW每個OP的請求 –

+0

我通常指的是一個Enumerable of Foo :-)所以一個序列。 – xanatos

回答

7

一個IEnumerable<Foo>迭代器/枚舉 - 也就是所述設備的獨立的概念,迭代它。

A 集合通常是指允許諸如添加/去除等操作的特定設備;這在這裏不適用,但這個術語不是不合理的。我個人傾向於在討論中使用「序列」,但我沒有用它來命名代碼中的東西 - 我只是使用序列代表的東西,即「orders」,「uniqueUsers」等 - 或者在通用方法的情況下,「項目」,「價值觀」等

+0

另請參見[關於IEnumerable和IEnumerator的問題](http://stackoverflow.com/questions/4548464/question-regarding-ienumerable-and-ienumerator/4550191#4550191)。 – Brian

6

我肯定對序列傾斜。在我看來,一個收集是有限的,一個IEnumerable<Foo>很可能代表了在飛行中產生的值的序列,因此它可能代表值的無限序列

+0

序列不錯,但並非所有序列都實現了任何形式的IEnumerable。 「可重複使用的序列」將是我的首選英文 - ish描述;一些可重複使用的序列沒有實現IEnumerable實現,但由於大多數沒有實現IEnumerable的序列是不可重用的,我認爲「可重用」是一個有用的形容詞。 – supercat

2

有用於參照它寫爲「富的IEnumerable」的先例。例如,this MSDN page引用「XElement的IEnumerable」。

Verbally我會說「一個IEnumerable of Foo」或者「一個Enumerable of Foo」。

1

到目前爲止,最清晰和最明確的方式來描述「(中富)的IEnumerable」的變量,參數,或類型的字段「的IEnumerable <富>」是稱之爲一個「的IEnumerable <FOO>」,或者「IEnumerable of foo」。作爲一名VB程序員,我更喜歡中間語法,尤其是因爲它不使用可能被誤認爲是HTML標記的標點符號;在說話時,除了涉及嵌套泛型的情況外,後一種形式將是最自然的發音(最初的「I」代表它自己的音節),當需要其他發音提示來指示精確的嵌套時。

其中一些實現通用或者非通用(*)的IEnumerable接口的集合類的,但有些不是。有些是迭代器;有些不是。因此,除非知道特定的IEnumerable實際上是一個集合或迭代器,否則術語「集合」和「迭代器」是不適合的。術語「迭代器」有一個額外的問題,由術語「序列」共享:並非所有的迭代器或序列都實現IEnumerable;有些實現IEnumerator,有些實現GetEnumerator方法,但不實現IEnumerable(例如,因爲他們希望允許「foreach」,但不希望承諾IEnumerable暗示的所有行爲)。如果有人希望避免行話,那麼術語「可重複使用的序列」可能是好的。它並不是很明確,因爲它可能會引用具有GetEnumerator方法的類,但不會實現IEnumerable,或者可能引用其Reset方法實際重置枚舉的IEnumerator對象,但不包括一次性迭代器。 (*)從這裏開始,術語「IEnumerable」將互換地引用IEnumerable和IEnumerable <T>。同樣「IEnumerator」。

0

在句子(代碼)中使用它。

IEnumerable<Foo> myFoos = GetFoos(); 
    //internal vocalization: get some Foos, assign them to myFoos 

我懷疑大多數程序員不會在變量聲明/賦值語句中內部發聲。

public IEnumerable<Foo> ProcessFoos(IEnumerable<Foo> source) 
    //internal vocalization: The method requires some foos and returns some foos. 

我想我使用「一些」作爲我的內部發聲。可能任何複數形式的詞都有效。批量,大塊,束,羣,過度等

相關問題