任何人都可以向我解释当你使用三元运算符时幕后会发生什么?这行代码:
string str = 1 == 1 ? "abc" : "def";
Run Code Online (Sandbox Code Playgroud)
是作为一个简单的if/else语句生成的?考虑以下:
class A
{
}
class B : A
{
}
class C : A
{
}
Run Code Online (Sandbox Code Playgroud)
现在使用三元表达式如下:
A a1 = 1 == 1 ? new B() : new C();
Run Code Online (Sandbox Code Playgroud)
这甚至没有使用此错误编译:
无法确定条件表达式的类型,因为"ConsoleApp1.B"和"ConsoleApp2.C"之间没有隐式转换
任何人都可以阐明这个吗?