字典中类中的C#泛型
我有以下代码:字典中类中的C#泛型,c#,generics,dictionary,C#,Generics,Dictionary,我有以下代码: protected Dictionary<string, ObjectAttribute<T>> attributes; 受保护的字典属性; 每次向目录添加新项时,我都应该传递一个泛型类型,但我不想使用object/dynamic,因为它以后可能会导致一些强制转换问题。那么,有可能这样做吗 T不是在类构造函数或其他任何地方定义的,因为我每次添加项时都需要它。如果您的意思是“并且T可以更改每个项”,则否:除非ObjectAttribute也具有非泛型基类
protected Dictionary<string, ObjectAttribute<T>> attributes;
受保护的字典属性;
每次向目录添加新项时,我都应该传递一个泛型类型,但我不想使用object/dynamic,因为它以后可能会导致一些强制转换问题。那么,有可能这样做吗
T不是在类构造函数或其他任何地方定义的,因为我每次添加项时都需要它。如果您的意思是“并且T
可以更改每个项”,则否:除非ObjectAttribute
也具有非泛型基类或实现非泛型接口,即
protected Dictionary<string, IObjectAttribute> attributes;
受保护的字典属性;
与
class ObjectAttribute:IOObjectAttribute{…}
将起作用。如果您的意思是“并且T
可以更改每个项目”,则否:除非ObjectAttribute
还具有非泛型基类或实现非泛型接口,即
protected Dictionary<string, IObjectAttribute> attributes;
受保护的字典属性;
与
class ObjectAttribute:IOObjectAttribute{…}
将起作用。'T'必须替换为类名。您可以是特定的,例如字符串、整数…或通用的,即对象,或者在接口之间,或者在所有的、其他的、可能在字典中的、继承自的、类之间。类是泛型的:List是泛型类,它是一个可以是任何类型的类;不能创建列表或任何泛型类型。列表和列表是类型,它们不再是泛型;您可以创建这些。必须用类名替换“T”。您可以是特定的,例如字符串、整数…或通用的,即对象,或者在接口之间,或者在所有的、其他的、可能在字典中的、继承自的、类之间。类是泛型的:List是泛型类,它是一个可以是任何类型的类;不能创建列表或任何泛型类型。列表和列表是类型,它们不再是泛型;您可以创建这些。