Sự khác biệt phải làm với thứ tự hoạt động. Sau đây:
str += ((char)97) +2;
tương đương với:
str = str + (((char)97) + 2);
Mặt khác, sau đây:
str = str +((char)97)+2;
tương đương với:
str = (str + ((char)97)) + 2;
Lưu ý sự khác biệt trong vị trí của dấu ngoặc đơn.
Bây giờ chúng ta hãy xem xét hai trường hợp:
1) str = str + (((char)97) + 2)
:
Ở đây, 97 + 2
được đánh giá đầu tiên. Kết quả là int
(99
), được chuyển thành chuỗi và được thêm vào str
. Kết quả là "Hello99"
.
2) str = (str + ((char)97)) + 2
:
Ở đây, (char)97
('a'
) được nối vào chuỗi, và sau đó 2
được chuyển thành chuỗi và nối vào kết quả. Điều này cho phép "Helloa2"
.