Страницы

Поиск по вопросам

вторник, 29 января 2019 г.

Анонимный интерфейс c#

Есть интерфейс
intefrace IMy { void say(String msg); }
Есть класс
class My { IMy iMy; public My() { iMy = (str) = > Console.WriteLine(str); //ошибка iMy.say("Text"); } }
На строке с //ошибка мне пишет
Cannot convert lambda expression to type IMy, because it is not a delegate type
Что мне надо изменить в коде, чтобы я мог инициализировать переменную iMy моим способом?
P.S. сам пишу на java, и там такая конструкция работает. Какая аналогичная конструкция в c#?


Ответ

Судя по примеру использования вместо интерфейса в данном случае можно использовать делегат Action, например так
class My { Action iMy; public My() { iMy = (str) => Console.WriteLine(str); //ок iMy("Text"); } }

Комментариев нет:

Отправить комментарий