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