T:类型的名称是什么意思

本文关键字:是什么 意思 类型 | 更新日期: 2023-09-27 18:19:57

我多次看到这样的代码:

 public class BaseList<T> : List<T> where T : BaseBE

我的问题是,这段代码的含义是什么?为什么我们要这样写这行?我知道它使用的是List<T>,但where T : BaseBE的含义是什么?

T:类型的名称是什么意思

这个语句where T:BaseBE是对T的约束。在这个特定的例子中,它告诉你T可以是BaseBE类型,也可以是从它继承的任何类,但不能是其他类型。

有关更多详细信息,您可以查看MSDN,您会发现更多详细信息和示例。

这意味着泛型类型T必须继承自BaseBE,这被称为类型约束。这允许将类型T用作BaseList中的BaseBE。

例如:

class Foo { }
BaseList<Foo> myList; // Wont compile, Foo is not a BaseBE
class Bar : BaseBE { }
BaseList<Bar> myOtherList; // Ok Bar is a BaseBE

你可以在这里阅读更多类型的约束:

http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.80).aspx

例如,其中T:new()表示T必须有一个公共的无参数构造函数。