新手在C#这里 -
我有一个可以查询的JSON数据源。根据我发出的查询,该JSON接口可以返回多种类型的对象。例如它可以返回Customers
列表,Vendors
列表,Items
列表等等。
所有这些对象都可以从一个基类继承。
有没有办法让单个C#方法能够返回变量类型列表?
如果我只返回一个客户或一个供应商,那该怎么办?有没有办法让一个->get(type, id)
方法返回任何这些对象类型,具体取决于我传入的type
?
答案 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");