• 泛型中new()约束的用法


    一、.NET中支持的类型参数约束有以下几种


    where T : struct              T必须是一个结构类型
    where T : class               T必须是一个类(class)类型,不能是结构(structure)类型
    where T : new()               T必须要有一个无参构造函数
    where T : NameOfBaseClass     T必须继承名为NameOfBaseClass的类
    where T : NameOfInterface     T必须实现名为NameOfInterface的接口

    二、泛型中new()约束基本形式

    class A<T> where T : new() 

    三、泛型中new()约束实例

     
    [csharp] view plain copy
    public class A<T> where :class,new()  
      
    {  
      
          public void Func()  
      
          {  
      
                T t=new T();  
      
           }  
      
    }  

    四、泛型中new()约束的注意事项

     
     

    1、泛型定义中有new()约束关键字时,表示必须有一个公共的无参的构造函数。简单点说就是你传递一个类代替T的时候,这个类必须有一个构造函数,且必须是公共的无参的。

     

    2、当有多个约束时候,new()关键字必须放到坐后面。

     

    3、在使用new()约束时,可以通过调用该无参构造函数来创建对象。 

     

    五、多个泛型类型参数

    对于多个类型参数,每个类型参数都使用一个 where 子句

    class Dictionary<TKey, TVal>  
        where TKey : IComparable, IEnumerable,new()  
        where TVal : IMyInterface,new()  
       {  
        public void Add(TKey key, TVal val)  
        {  
        }  
    }  

    本文转载自 泛型中new()约束   http://www.studyofnet.com/news/988.html

  • 相关阅读:
    xpath和lxml库
    pipenv和autoenv
    正则表达式
    requests库
    Photoshop学习笔记
    Firebug使用笔记
    JavaScript中的声明提升(Hoisting )
    JavaScript中的继承机制
    JavaScript中的instanceof原理详解
    JSP使用JSON传递数据,注意避免中文乱码
  • 原文地址:https://www.cnblogs.com/wphl-27/p/8357728.html
Copyright © 2020-2023  润新知