Условный оператор, общий делегат, ненужное приведениеC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Условный оператор, общий делегат, ненужное приведение

Сообщение Anonymous »

У меня возникла очень странная проблема с условным оператором при установке значения Action. Дело не в том, что я не знаю, как обойти эту проблему, ее довольно легко решить, используя обычный if.

Вот моя проблема:

Код: Выделить всё

public class Test
{
public bool Foo { get; set; }
public Action Action { get; set; }

public void A()
{
Action = Foo ? B : C;//Gives compiler error
}

public void B(bool value)
{

}

public void C(bool value)
{

}
}
Это выдает ошибку компилятора с сообщением


Неявного преобразования нет между «группой методов» и «группой методов».


Что странно, поскольку я не могу понять, почему это незаконно.

Кстати, синтаксис ниже сделает это действительным (с точки зрения компилятора):

Код: Выделить всё

    public void A()
{
Action = Foo ? (Action) B : C;
}
Так, может быть, вы можете прочитать вопрос так: зачем нужен приведение актеров?

Подробнее здесь: https://stackoverflow.com/questions/707 ... ssary-cast
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»