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