我是C#新手,刚遇到问题。处理三元运算符(? :
)时,C#和Java之间有所不同。
在以下代码段中,为什么第四行不起作用?编译器显示错误消息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#中缺少什么语言功能?如果有,为什么不添加?