我有10个不同的类,但是在这个问题的目的下面是两个:
public class Car
{
public int CarId {get;set;}
public string Name {get;set;}
}
public class Lorry
{
public int LorryId {get;set;}
public string Name {get;set;}
}
现在我有一个像
这样的功能public static object MyFunction(object oObject, string sJson)
{
//do something with the object like below
List<oObject> oTempObject= new List<oObject>();
oTempObject = JsonConvert.DeserializeObject<List<oObject>>(sJson);
return oTempObject;
}
我想要做的是将我创建的对象(如下面的oCar)传递给函数。
Car oCar = new Car();
我的问题是如何将不同类型的对象传递给同一个函数?
答案 0 :(得分:9)
使用通用方法可以解决问题:
public static List<T> MyFunction<T>(string sJson)
{
//do something with the object like below
return (List<T>)JsonConvert.DeserializeObject<List<T>>(sJson);
}
用法:
List<Car> cars = MyFunction<Car>(sJson);
或
List<Lorry> cars = MyFunction<Lorry>(sJson);
更新(感谢Matthew注意方法名称背后的类型), 顺便说一句:当参数为T型时,不需要这样做。