Я новичок в С#, и я просто столкнулся с проблемой. Существует разница между С# и Java при работе с тернарным оператором (? :
).
В следующем сегменте кода, почему 4-я строка не работает? Компилятор показывает сообщение об ошибке there is no implicit conversion between 'int' and 'string'
. 5-я строка не работает. Оба 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
Какая языковая функция в С# отсутствует? Если да, то почему он не добавлен?