所以我在这里查看 MSDN 示例:Constraints on Type Parameters (C# Programming Guide)第一个示例显示了以下定义 where
的泛型类具有单一具体类型的约束:Employee
public class GenericList<T> where T : Employee
现在使用 where
约束 我完全理解在定义 > 1 类型时的用法,或 最肯定的是在使用接口(interface)时。但是(我知道这只是一个例子),为什么我只想使用 where
限制为单一具体类型的约束?我不能只替换下面的代码吗:
public T FindFirstOccurrence(string s)
由于只有一个单一约束,所以使用以下内容?
public Employee FindFirstOccurrence(string s)
我能看到使用单个 where
部署代码的唯一原因constriant 是为了将来灵活地为 if Employee
添加额外的约束。变成了IEmployee
并且我对更改的设置更容易一些。
谁能解释一下使用 where
的目的是什么?单一类型的约束提供?
谢谢!
最佳答案
why would I ever want to just use a where constraint to restrict to a single concrete type?
不太正确 - 约束在 Employee
上type 和继承自它的任何类型,因此它可以应用于 Manager
和 CEO
类(class)也是如此。
定义约束意味着您可以在 Employee
上使用任何可访问的方法在您的代码中键入,传入的类型是否为 Employee
或继承类型。
关于c# - 为什么我会使用仅限于单一类型的 where 约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588759/