建構泛型的方法為:
Activator.CreateInstance<T>()
 
 
在 C# 中很常用到泛型,也就是很常見的 "T"。
 
很多人都會建立一個工具來輔助資料的讀取,所以這類工具的寫法可能跟下面一樣
 
public T Load<T>()
{
    T data;

    // 取得資料的程式碼......
 
    return data;
}
 
 
 
但是發現取不到資料時,可能是該資料不存在。
這時候不想回傳 null,而是想要建構一筆空的資料並回傳時該怎麼辦呢?
 
很多人直覺會使用下面的方法,不過這是錯誤的
 
// 這是錯誤的, 編譯過不了
T data = new T();
 
 
 
正確的方式為
 
// 資料不存在, 直接建立一筆空的
T data = Activator.CreateInstance<T>();
 
 
 
加入方法中
 
public T Load<T>()
{
    T data;

    // 取得資料的程式碼......

    // 資料不存在, 直接建立一筆空的
    data = Activator.CreateInstance<T>();

    return data;
}
 

 

 

arrow
arrow
    文章標籤
    C# 泛型 T Type
    全站熱搜

    岳 發表在 痞客邦 留言(0) 人氣()