我有一個問題,涉及使用在運行時已知的類型參數調用類的泛型方法。使用在運行時確定的類型參數調用泛型函數
在具體的代碼看起來像這樣:
FieldInfo[] dataFields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
// data is just a byte array used internally in DataStream
DataStream ds = new DataStream(data);
foreach (FieldInfo field in dataFields)
{
Type fieldType = field.FieldType;
// I want to call this method and pass in the type parameter specified by the field's type
object objData = (object) ds.Read<fieldType>();
}
的read()函數看起來像這樣:
public T Read() where T : struct
該功能的目的是返回從字節數組中讀取數據。
有沒有什麼辦法像這樣在運行時調用泛型方法?
感謝您的回覆,我從來沒有考慮過這麼簡單的設計變更。 – 2009-09-21 18:26:33
我的問題並沒有像OP問題那樣看起來像,但是你完全證明了我需要知道的東西。謝謝! – KennyZ 2012-05-20 13:39:59