C# вернуть список переменной дочернего класса?
Новичок в C# здесь -
У меня есть источник данных JSON, который я могу запросить. В зависимости от запроса, который я выдаю, этот интерфейс JSON может возвращать более одного типа объекта. например, он может вернуть список Customers
или список Vendors
или список Items
и т. д. и т. д.
Все эти объекты могут наследоваться от одного базового класса.
Есть ли способ иметь один метод C#, способный вернуть список типа переменной?
А что, если я верну только одного Клиента или одного Продавца? Есть ли способ сделать сингл ->get(type, id)
метод возвращает любой из этих типов объектов в зависимости от type
Я вхожу?
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");
И т. Д.
Похоже, вы ищете дженерики.
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");