2014-01-20 2 views
1

Новичок на C# здесь -C# возвращает список дочернего класса переменной?

У меня есть источник данных JSON, который я могу запросить. В зависимости от запроса, который я выдаю, этот интерфейс JSON может возвращать более одного типа объекта. например он может возвращать список Customers, или список Vendors, или список из Items, или и т.д. и т.д. и т.п.

Все эти объекты могут наследовать от одного базового класса.

Есть ли способ, чтобы один метод C# мог возвращать список типов переменных?

Как насчет того, если я вернусь только одного Клиента или одного Продавца. Есть ли способ сделать один метод ->get(type, id) возвращать любой из этих типов объектов в зависимости от type. Пропускаю?

+0

Вы могли бы предоставить этот запрос? –

+4

public TYPE Get (id) { } –

+0

Это удаленный JSON API - вы можете отправить SQL-запросы: «FETCH Customers WHERE Balance> 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"); 

И т.д. и т.д.

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"); 
Смежные вопросы