ฉันเป็นมือใหม่ C # และฉันเพิ่งพบปัญหา มีความแตกต่างระหว่าง C # และ Java เมื่อจัดการกับตัวดำเนินการ ternary ( ? :
)
ในส่วนรหัสต่อไปนี้เหตุใดบรรทัดที่ 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
คุณลักษณะภาษาใดใน C # หายไป ถ้ามีทำไมถึงไม่เพิ่ม?