亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

C#如何創(chuàng)建泛型類T的實例

Original 2016-11-02 16:26:21 580
abstract:最近在學(xué)歷基類的寫法時,遇到了一個問題:如何怎么創(chuàng)建一個泛型類T的實例呢?    廢話不多說了,直接上代碼吧,目前發(fā)現(xiàn)三種方法,先貼上,以后再總結(jié),希望能幫助跟我遇到同樣問題的朋友。 方法一,通過外部方法傳入的實例來實例化://泛型類: public class MySQLHelp<T> {    &nbs

最近在學(xué)歷基類的寫法時,遇到了一個問題:如何怎么創(chuàng)建一個泛型類T的實例呢?    

廢話不多說了,直接上代碼吧,目前發(fā)現(xiàn)三種方法,先貼上,以后再總結(jié),希望能幫助跟我遇到同樣問題的朋友。

 

方法一,通過外部方法傳入的實例來實例化:

//泛型類:
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{

}

方法二,通過限制泛型類的構(gòu)造函數(shù):

    限制泛型類必須帶有無參構(gòu)造方法: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(包含創(chuàng)建本地或遠程對象類型的方法或獲取引用的方法,翻譯名:活化劑類)

創(chuàng)建指定泛型類型參數(shù)指定的類型的實例:System.Activator.CreateInstance<T>()

//泛型類:
public class MySQLHelp<T>
{
       //創(chuàng)建指定泛型類型參數(shù)指定的類型的實例(使用這種方法可以不對泛型類型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{

}


Release Notes

Popular Entries