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");
Другие вопросы по тегам