2015-10-09 44 views
0

我需要通過類名作爲動態的功能列出,但我得到了如下錯誤..如何動態傳遞的類名在運行時C#列出

public void updateList <T>(T clazz, string classData) 
{      

    if (string.IsNullOrEmpty(json_response) == false) 
    { 
     List<clazz> list_of_measurements_Original = JsonConvert.DeserializeObject<List<clazz>>(json_response); 
    } // Getting error for ClassType in List 
} 

錯誤CS0246:無法找到類型或名稱空間名稱'clazz'(您是否缺少使用指令或程序集引用?)

我有許多類,我想通過傳遞Class名稱或enum。 我也使用動態關鍵字作爲函數參數,但沒有結果。 請幫我一把。

回答

1

變化

List<clazz> objlist = new List<clazz>(); 

List<T> objlist = new List<T>(); 

這裏T是一種類型的參數,其是用於特定類型的佔位符。編譯器將T更改爲您傳遞的任何類型。您不能傳遞一個變量(clazz)作爲泛型類的類型參數。

+0

即使這是導致正確的答案,請嘗試避免從/到答案的變化。試着解釋他們爲什麼需要改變。 – Johan

+0

感謝工作.. – skt

+0

@Johan感謝您的提示 –

2

'clazz'是編譯器搜索類型時的參數。您不需要將類型作爲參數傳遞,這就是泛型的用途。試試這個:

public void updateList <T>(string classData) 
    { 

     List<T> objlist = new List<T>(); 
    } 
相關問題