C # Абстрактный класс, использующий аноним вместо объявления конкретного класса?
-
05-07-2019 - |
Вопрос
У меня есть абстрактный класс, и я хотел бы использовать его быстро, НЕ создавая конкретный класс, который наследует абстрактный класс. Ну, чтобы определить абстрактный метод анонимно.
Что-то в этом роде:
Command c = new Command(myObject){
public override void Do()
{
}
};
Возможно ли это в C # .net 2.0?
Решение
Вы можете создать тип, который обернет действие, обеспечивающее реализацию как таковую:
class ActionCommand
{
private readonly Action _action;
public ActionCommand(Action action)
{
_action = action;
}
public override void Do()
{
_action();
}
};
Тогда это можно использовать так:
Command c = new Command((Action)delegate()
{
// insert code here
});
Не связан с StackOverflow