我正在学习C#和带有类约束的泛型,比如
public class GenericList<T> where T : Employee
我感到困惑,因为我在这里没有看到任何通用的东西.GenericList列表绑定到员工的类.这与我们从GenericList的构造函数注入Employee一样.
还是我错过了什么?
我正在学习C#和带有类约束的泛型,比如
public class GenericList<T> where T : Employee
我感到困惑,因为我在这里没有看到任何通用的东西.GenericList列表绑定到员工的类.这与我们从GenericList的构造函数注入Employee一样.
还是我错过了什么?
我在这里看不到任何普通的东西
这就是类型名称后面的<T>
(GenericList
).T
是泛型参数的名称.
GenericList列表绑定到员工的类.
T
可以是Employee
,也可以是直接继承Employee
或通过其他类型继承Employee
的任何类型.
这与我们从GenericList的构造函数注入Employee一样.
不怎么有意思.您在构造函数中所做的实际上与泛型参数没有任何关系.泛型允许您修改类型.例如,你可以有这些不同的变量.
GenericList<Employee> a;
GenericList<FullTimeEmployee> b;
GenericList<PartTimeEmployee> c;
这些都是不同类型的.
依赖项注入只适用于类型的构造函数中的参数.是的,这些参数可以包括具有泛型参数的类型(例如,您可以要求ILogger<MyService>
),但是您指定的T
类型实际上没有类似的类型.