Jestem nowicjuszem w C # i właśnie napotykam problem. Istnieje różnica między językiem C # a Javą, gdy mamy do czynienia z operatorem trójargumentowym ( ? :
).
W następującym segmencie kodu, dlaczego czwarta linia nie działa? Kompilator wyświetla komunikat o błędzie there is no implicit conversion between 'int' and 'string'
. Piąta linia również nie działa. Oba List
są obiektami, prawda?
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
Jednak ten sam kod działa w Javie:
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
Jakiej funkcji języka w C # brakuje? Jeśli tak, dlaczego nie jest dodany?