C#返回一个变量子类的List?

时间:2014-01-20 02:44:50

标签: c# json

新手在C#这里 -

我有一个可以查询的JSON数据源。根据我发出的查询,该JSON接口可以返回多种类型的对象。例如它可以返回Customers列表,Vendors列表,Items列表等等。

所有这些对象都可以从一个基类继承。

有没有办法让单个C#方法能够返回变量类型列表?

如果我只返回一个客户或一个供应商,那该怎么办?有没有办法让一个->get(type, id)方法返回任何这些对象类型,具体取决于我传入的type

2 个答案:

答案 0 :(得分:2)

正如AD.Net已经说过的那样,你可以制作一个通用的方法。

这样的东西
public T GetData<T>(String query)
{
    T data = //query stuff here
    return data;
}

现在,如果要使用返回Customer列表的查询进行查询:

var list = GetList<List<Customer>>("customerquery");

要查询单个供应商:

var v = GetList<Vendor>("vendor query");

等等..

答案 1 :(得分:2)

听起来像是在寻找generics

public T Get<T>(object id)
{
    var type = typeof(T);

    // construct your query based on the type
    // var queryResult = ...
    return JsonLibrary.Parse<T>(queryResult);
}
var customer = Get<Customer>("ben");
var vendors = Get<List<Vendor>>("ben&jerrys");