加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

C#如何创建泛型类T的实例

发布时间:2020-12-16 08:55:34 所属栏目:asp.Net 来源:网络整理
导读:最近在学历基类的写法时,遇到了一个问题:如何怎么创建一个泛型类T的实例呢? ? ? 废话不多说了,直接上代码吧,目前发现三种方法,先贴上,以后再总结,希望能帮助跟我遇到同样问题的朋友。 ? 方法一,通过外部方法传入的实例来实例化: // 泛型类: publi

最近在学历基类的写法时,遇到了一个问题:如何怎么创建一个泛型类T的实例呢? ? ?

废话不多说了,直接上代码吧,目前发现三种方法,先贴上,以后再总结,希望能帮助跟我遇到同样问题的朋友。

?

方法一,通过外部方法传入的实例来实例化:

//泛型类:
public class MySQLHelp<T>
{
       private T t;
       public MySQLHelp(T t)
        {
            this.t = t;
        }    
}

测试类
class Test{
     static void Main(){
               MySQLHelp<Message> mm = new MySQLHelp<Message>(new Message());
     }
}
其他类
 Message{

}

方法二,通过限制泛型类的构造函数:

? ? 限制泛型类必须带有无参构造方法:public class MySQLHelp<T> where T:new()

class MySQLHelp<T> where T:()
{
       private T t= T();
        MySQLHelp()
        {
        }    
}

);
     }
}
 Message{

}

方法三,利用微软提供的方法:

? ?利用微软的类:System.Activator(包含创建本地或远程对象类型的方法或获取引用的方法,翻译名:活化剂类)

创建指定泛型类型参数指定的类型的实例:System.Activator.CreateInstance<T>()
创建指定泛型类型参数指定的类型的实例(使用这种方法可以不对泛型类型T做限制,即不用添加:where T:new())
        private T t = System.Activator.CreateInstance<T>();
        Message{

}

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读