zoukankan      html  css  js  c++  java
  • 类型参数的约束(C# 编程指南)

    https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters

    定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的几种类型施加限制。 如果客户端代码尝试使用约束所不允许的类型来实例化类,则会产生编译时错误。 这些限制称为约束。通过使用 where 上下文关键字指定约束。 下表列出了六种类型的约束:

    约束描述
    where T:结构 类型参数必须是值类型。 可以指定除 Nullable 以外的任何值类型。 有关详细信息,请参阅使用可以为 null 的类型
    where T:类 类型参数必须是引用类型;这同样适用于所有类、接口、委托或数组类型。
    where T:new() 类型参数必须具有公共无参数构造函数。 与其他约束一起使用时,new() 约束必须最后指定。
    where T:<基类名称> 类型参数必须是指定的基类或派生自指定的基类。
    where T:<接口名称> 类型参数必须是指定的接口或实现指定的接口。 可指定多个接口约束。 约束接口也可以是泛型。
    where T:U 为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。
    约束说明
    where T: struct 类型参数必须是值类型。 可以指定除 Nullable 以外的任何值类型。 有关更多信息,请参见使用可以为 null 的类型
    where T : class 类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。
    where T : new() 类型参数必须具有无参数的公共构造函数。 当与其他约束一起使用时,new() 约束必须最后指定。
    where T : <base class name> 类型参数必须是指定的基类或派生自指定的基类。
    where T : <interface name> 类型参数必须是指定的接口或实现指定的接口。 可以指定多个接口约束。 约束接口也可以是泛型的。
    where T : U 为 T 提供的类型参数必须是为 U 提供的参数或派生自为 U 提供的参数。
  • 相关阅读:
    数据的输入输出
    运算符和表达式
    深入理解Magento – 第三章 – 布局,块和模板
    压抑中......
    css控制图片自适应大小
    问来北京的追求是什么
    magento目录结构精编版
    无所事事的日子。
    jQuery实现等比例缩放大图片让大图片自适应页面布局
    MVC 小常识
  • 原文地址:https://www.cnblogs.com/tian2008/p/8065964.html
Copyright © 2011-2022 走看看