如何在C#中将不同的对象传递给相同的函数
本文关键字:函数 对象 | 更新日期: 2023-09-27 18:27:13
我有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();
我的问题是如何将不同类型的对象传递给同一个函数?
使用通用方法将解决问题:
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);
Update(感谢Matthew注意到方法名称后面的类型),顺便说一句:当参数类型为T时,这是不需要的。