用在什么地方比较合适
class Entity<T> {}
new Entity<User>()
与
相反class Entity
{
public Entity(System.Type type)
{
}
}
new Entity(typeof(User))
在处理反射和代码生成之后,我意识到了 System.Type 的重要性。经过一个月的开发和熟悉后,我带着怀疑的态度回顾自己的选择。
如果您不需要反射,这可能不适用于您。
最佳答案
通用方法 Entity<T>
能够使用泛型类型约束在编译时强制执行规则和功能(例如,T
必须具有公共(public)无参数构造函数并且是引用类型)。它不需要每个实例上的类型的任何存储空间,因为 Entity<X>
和Entity<Y>
是谨慎的类型 - 但重申一下:你不能拥有异类 List<Entity<?>>
(除非你有一个共同的基本类型)出于同样的原因。
如果类型仅在运行时已知,那么使用泛型就会困难得多。
关于c# - 泛型<T>() 与泛型(System.Type)。泛型与反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8815039/