Условный оператор не работает с двумя типами, которые наследуют один и тот же базовый тип

Почему условный оператор ( ?:) не работает при использовании с двумя типами, которые наследуются от одного базового типа?

Пример, который у меня есть:

ActionResult foo = (someCondition)? 
                      RedirectToAction("Foo","Bar") :
                      Redirect(someUrl);

Где длинная форма работает нормально:

ActionResult foo;

if(someCondition)
{
  foo = RedirectToAction("Foo","Bar");
}
else
{
  foo = Redirect(someUrl);
}

Оба возвращаемых типа, RedirectToRouteResultи RedirectResult, наследуются от ActionResult. ].

12
задан Daniel Daranas 27 June 2013 в 13:27
поделиться