原文链接:https://www.cnblogs.com/lxhbky/p/6020612.html

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

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

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

}

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

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

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

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

}

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

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

创建指定泛型类型参数指定的类型的实例:System.Activator.CreateInstance<T>()

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

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

}

 

相关文章:

  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-19
  • 2022-03-05
  • 2021-09-07
  • 2021-11-16
  • 2022-12-23
相关资源
相似解决方案