泛型类型参数约束 C#泛型函数获取T类型名称?
浏览量:2407
时间:2021-03-18 06:04:34
作者:admin
C#泛型函数获取T类型名称?
如果t是从where t:A继承的,如果t是从where t:B继承的,那么在定义泛型类时,您可以在实例化类时对客户端代码可用于类型参数的类型施加限制。如果客户机代码试图用约束不允许的类型实例化类,则会发生编译时错误。这些约束称为约束。使用where context关键字指定约束。下表列出了六种类型的约束:约束描述T:结构类型参数必须是值类型。可以指定除nullable以外的任何值类型。有关详细信息,请参阅使用可为null的类型(C#编程指南)。T:类类型参数必须是引用类型这一事实也适用于任何类、接口、委托或数组类型。T:new()类型参数必须具有不带参数的公共构造函数。与其他约束一起使用时,必须最后指定new()约束。T:<基类名称>类型参数必须是指定的基类或派生自指定的基类。T:< interface name>类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。T:u为T提供的类型参数必须是为u提供的参数或从为u提供的参数派生的参数。这称为裸类型约束。//---------------------------------此外,由于所有泛型约束表达式都是“and”关系,因此不可能表示“or”关系,而且C#不支持多重继承,因此从a或B继承的所有者的要求无法实现。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。