Имеется класс команды, в упрощенном виде выглядящий так :
public class Command
{
public Command(int price, Action method)
{
method.Invoke();
}
public Command(int price, Func
В конструкторе 1 принимающий int и Action - ссылку на метод который ничего не возвращает. В конструкторе 2 Func
public void toDosome()
{
}
public int newId()
{
return 100500;
}
Далее я создаю обьект и проблем не возникает :
var command = new Command(11, newId);
Однако если вместо newId окажется toDosome :
var commandTo = new Command(1211, toDosome);
Мне выпадет исключение :
The call is ambiguous between the following methods or properties.
При этом я не могу удалить какой либо конструктор, что бы успешно создавать command или commandTo. Как поступить в такой ситуации ?
Ответ
Создавайте явно делегат типа Action, передавая целевую функцию делегату и проблема выбора перегрузки функции исчезнет
var commandTo = new Command(1211, new Action(toDosome));
Комментариев нет:
Отправить комментарий