C# 和 Java 的三元运算符之间的区别(? :)
我是一个C#新手,我只是遇到了一个问题。在处理三元运算符 () 时,C# 和 Java 之间存在差异。? :
在下面的代码段中,为什么第 4 行不起作用?编译器显示错误消息 。第 5 行也不起作用。两者都是对象,不是吗?there is no implicit conversion between 'int' and 'string'
List
int two = 2;
double six = 6.0;
Write(two > six ? two : six); //param: double
Write(two > six ? two : "6"); //param: not object
Write(two > six ? new List<int>() : new List<string>()); //param: not object
但是,相同的代码在Java中工作:
int two = 2;
double six = 6.0;
System.out.println(two > six ? two : six); //param: double
System.out.println(two > six ? two : "6"); //param: Object
System.out.println(two > six ? new ArrayList<Integer>()
: new ArrayList<String>()); //param: Object
C# 中缺少哪些语言功能?如果有的话,为什么不添加?