如何在C#中将不同的对象传递给同一个函数

时间:2013-08-09 12:21:35

标签: c# function object

我有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();

我的问题是如何将不同类型的对象传递给同一个函数?

1 个答案:

答案 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型时,不需要这样做。