Почему компилятор С# не может вывести тип условного выражения в приведенном ниже коде?
class A {}
class B : A {}
class C : A {}
A TestInference ()
{
return new Random ().Next () == 0 ? new B () : new C ();
}
РЕДАКТИРОВАТЬ: я знаю, как исправить ошибку компилятора (просто приведите B
или C
к A
), мой вопрос: почему компилятор не может понять, что тип A
сам по себе?