我需要将类名称动态传递给函数中的List,但是我收到如下错误。
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:类型或命名空间名称&#39; clazz&#39;找不到(你错过了使用指令或汇编引用吗?)
我有许多类,我希望通过传递类名或枚举来通过相同的通用函数动态更新。 我还使用动态关键字作为函数参数但没有结果。 请帮帮我。
答案 0 :(得分:2)
&#39; clazz所&#39;是编译器搜索类型时的参数。您不需要将类型作为参数传递,这是泛型的用途。试试这个:
public void updateList <T>(string classData)
{
List<T> objlist = new List<T>();
}
答案 1 :(得分:1)
更改
List<clazz> objlist = new List<clazz>();
到
List<T> objlist = new List<T>();
此处T
是一个类型参数,它是特定类型的占位符。编译器将T
更改为您传递的任何类型。您不能将变量(clazz)作为泛型类的类型参数传递。