2012-06-25 67 views
0

我有下面的代碼:C#泛型

protected Dictionary<string, ObjectAttribute<T>> attributes; 

我要我每次添加一個新項目的目錄時通過一個通用的類型,但我不希望使用對象/動態因爲它可能會導致一些鑄造問題。那麼,是否有可能通過這種方式?

T沒有在類的構造函數或其他任何地方定義,因爲我每次添加項目時都需要它。

+0

'T'必須用類名替換。你可以是特定的,例如字符串,整型...或一般即對象,或中間Interface_that_all_other_classes_that_may_be_in_dictionary_inherit_from。 –

+0

類是通用的:列表是一個泛型類,它是一個可以是任何類型的類;您無法創建列表或任何通用類型。列表和列表是類型,它們不再是通用的;你可以創建這些。 –

回答

5

如果你的意思是「和T可以爲每個項目改變」,則沒有:除非ObjectAttribute也有非一般的基類或

實現非通用接口,即

protected Dictionary<string, IObjectAttribute> attributes; 

class ObjectAttribute<T> : IObjectAttribute {...} 

會工作。