Почему оператор С# null коалесценции не в состоянии понять это?
Cat c = new Cat();
Dog d = null;
Animal a = d ?? c;
Это даст ошибку
Оператор? не может применяться к операндам типа Dog и Cat
Кажется странным, учитывая следующие компиляции.
Animal a = d;
a = c;
Контекстный код:
public abstract class Animal
{
public virtual void MakeNoise()
{
Console.WriteLine("noise");
}
}
public class Dog : Animal
{
public override void MakeNoise()
{
Console.WriteLine("wuff");
}
}
public class Cat : Animal
{
public override void MakeNoise()
{
Console.WriteLine("miaow");
}
}