我知道這也許是一個愚蠢的問題,但泛型的命名標準是什麼?T或者TEntity?
T或TEntity或......它並不重要嗎?
我看到IQueryable(Of T),但接着是DBSet(Of TEntity)。
我知道這也許是一個愚蠢的問題,但泛型的命名標準是什麼?T或者TEntity?
T或TEntity或......它並不重要嗎?
我看到IQueryable(Of T),但接着是DBSet(Of TEntity)。
微軟使following recommendations in Generics FAQ: Best Practices:用描述性的名稱
名稱泛型類型參數,除非單個字母的名字完全是自我解釋和描述性的名稱不會增加價值。 [...]如果您有關於類型參數沒有額外的上下文信息,您應該使用字母T.
Public Class SomeClass(Of T)
Public Interface ISessionChannel(Of TSession)
我一般遵循微軟的命名約定,除非我有一個非常好的理由不,如果只是因爲其他許多開發者也這樣做,並且很容易在不同的代碼庫中移動。
你知道,我一直想知道這個自己,我想最後我想出了是這樣的:
應該T
如果T
是任何類型的,或者TSomething
如果T
有是Something
的子類。
我不知道這是否是正確的「規則」,但這是我迄今爲止使用的。
微軟的naming guidelines給出了幾個建議。如果不在這裏複製和粘貼它們,推薦使用「T」作爲前綴,當「...描述性名稱不會增加價值」時,「T」本身就是合適的。字典是一個更長名稱適用於TKey和TValue的例子。
我在想同一類型的東西,但是在實體框架中,很多接口的範圍都是類,例如DBSet(TEntity As Class)。你會如何命名? – Sam 2011-03-16 05:32:45
@Sam:「Class」沒有詳細說明對象應該如何工作,或者它在架構中的位置,但是Entity的確如此,所以我個人堅持使用TEntity。 – 2011-03-16 05:35:25
@Sam:是的,我不知道......我可能只是把它命名爲'T',但那只是我。 – Mehrdad 2011-03-16 06:37:14