具有类约束的 C# 泛型

问题描述 投票:0回答:1

我正在学习 C# 和具有类约束的泛型,例如

public class GenericList<T> where T : Employee

我很困惑,因为我在这里看不到任何通用的东西。 GenericList 列表绑定到 Employee 的类。这与我们从 GenericList 的构造函数注入 Employee 是一样的。

或者我错过了什么?

c# generics constraints
1个回答
0
投票

我在这里看不到任何通用的东西

这就是类型名称 (

<T>
) 后面的
GenericList
T
是通用参数的名称。

GenericList 列表绑定到 Employee 类。

T
可以是
Employee
,也可以是直接或通过其他类型继承
Employee
的任何类型。

这与我们从 GenericList 的构造函数注入 Employee 是一样的。

其实不然。您在构造函数中所做的实际上与泛型参数无关。泛型允许您修改类型。例如,您可以拥有这些不同的变量。

GenericList<Employee> a;
GenericList<FullTimeEmployee> b;
GenericList<PartTimeEmployee> c;

这些都是不同的类型。

依赖注入仅适用于类型构造函数中的参数。是的,这些参数可以包含具有通用参数的类型(例如,您可以要求

ILogger<MyService>
),但是您指定的
T
类型实际上并不具有并行性。

© www.soinside.com 2019 - 2024. All rights reserved.