问题here向我提出了一个问题:
c#中的三元操作,比如x = y ? a : b
,使用a
或b
的类型来确定三元表达式的类型。为什么不使用x
的类型?在任何给定的情况下,是否有可以使用的预期返回类型?
编辑:为了清楚起见,当我说
时为什么不使用
x
的类型?
我想我的意思是
为什么不首先尝试使用
x
的类型?
正如文件所述:
这个过程可以从:
开始答案 0 :(得分:9)
“在任何给定的情况下,不存在预期的返回类型 可以用?“
没有。考虑例如:
string s = Convert.ToString(y ? a : b);
ToString
方法存在多个重载,它们采用不同的数据类型。编译器需要知道表达式的类型是什么来知道要使用哪个重载。