为什么 C# 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");
}
}