2015-02-17 4 views
0

Мне интересно, возможно ли создать делегат с несколькими типами возвращаемых данных. Обычно я бы просто установить тип возвращаемого значения «объект», но так как я использую рамки сущности и новичок в этом он, кажется, не совсем так просто ...Делегат с несколькими типами возврата структуры объекта

Это то, что у меня есть:

private delegate List<Customer> SearchDelegate(string searchPhrase); 

Это то, что я хотел бы, чтобы это было:

private delegate List<Some sort of generic entity similar to object> SearchDelegate(string searchPhrase); 

Любые идеи? Благодаря!

+0

Func может быть использован каким-то образом, я думаю, –

ответ

1

Методы (включая делегатов) не могут быть перегружены только с помощью типа возврата. Вы можете иметь несколько делегатов:

private delegate List<Customer> SearchCustomerDelegate(string searchPhrase); 
private delegate List<Order> SearchOrderDelegate(string searchPhrase); 

или сделать делегат родовым:

private delegate List<T> SearchDelegate<T>(string searchPhrase); 
+0

Родовое раствор именно то, что я искал, и что я пытался делать. Спасибо! – Ohlafl

+0

Мне нужно иметь переменную SearchDelegate, которая является общей и известной во всем классе, как я могу ее создать, но не придавая ей значения? Что-то вроде: private SearchDelegate searchDelegate; ??? – Ohlafl

+0

@Ohlafl Только классы и методы могут быть объявлены в общем виде, поэтому вам нужно либо сделать класс generic, либо сделать делегат не общим. –

Смежные вопросы