如何在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();

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

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

使用通用方法将解决问题:

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时,这是不需要的。