C#-使用不同类型的对象作为函数参数
我正在编写一个解析JSON并可能返回不同类型对象的函数。 比如说,我正在解析一个bird-json,希望返回一个bird对象,然后是tiger-json,希望得到一个tiger对象 我该怎么做?我应该使用动态对象吗?如果这是答案,如何解决 我不想让我想从中得到的每种类型的对象的逻辑过载 提前感谢,C#-使用不同类型的对象作为函数参数,c#,C#,我正在编写一个解析JSON并可能返回不同类型对象的函数。 比如说,我正在解析一个bird-json,希望返回一个bird对象,然后是tiger-json,希望得到一个tiger对象 我该怎么做?我应该使用动态对象吗?如果这是答案,如何解决 我不想让我想从中得到的每种类型的对象的逻辑过载 提前感谢, Ariel为了防止代码膨胀,您可以实例化您的动物对象: 您正在使用JSON.NET吗?无论如何,泛型似乎是正确的答案。大概是这样的: public T CreateAnimal<T>(st
Ariel为了防止代码膨胀,您可以实例化您的动物对象:
您正在使用JSON.NET吗?无论如何,泛型似乎是正确的答案。大概是这样的:
public T CreateAnimal<T>(string json) {
return JsonConvert.DeserializeObject<T>(json);
}
Tiger t = CreateAnimal<Tiger>(tigerJson);
public T CreateAnimal(字符串json){
返回JsonConvert.DeserializeObject(json);
}
请注意,为了使用它,您必须提前知道json中需要哪种类型的对象,因此您可以这样调用它:
public T CreateAnimal<T>(string json) {
return JsonConvert.DeserializeObject<T>(json);
}
Tiger t = CreateAnimal<Tiger>(tigerJson);
Tiger t=CreateAnimal(tigerJson);
我想您应该看看,您知道调用该方法时希望返回的对象类型吗?@astander是的!我肯定也会使用泛型。可能只有一个解析方法。是的,我知道,jmcilhinneyThank你是dvlsg,我会尝试一下,让你知道我应该在CreateAnimal函数中使用T.GetType()来发现T的类型吗?可能。我可以问一下,您正在使用什么来解析JSON,或者您是否正在尝试自己编写解析代码?如果您正在使用(我强烈推荐),那么对JsonConvert.DeserializeObject的调用将从JSON字符串中获取所有匹配的属性,并将它们放在对象上——在本例中是Tiger对象。