建構泛型的方法為:
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; }
文章標籤
全站熱搜