Trong khi chơi đùa với các nhà điều hành ++
, tôi đã cố gắng để viết như sau:Toán tử ++ (hoặc -) trả về cái gì?
++i++;
tôi mong đợi này để biên dịch lúc đầu, nhưng tôi nhận được một lỗi biên dịch:
The operand of an increment or decrement operator must be a variable, property or indexer.
sau đó tôi đã cố gắng viết ++(i++)
để giúp trình biên dịch hiểu những gì tôi có nghĩa là nhưng nó cũng (không ngạc nhiên) đã không làm việc.
Vì vậy, tôi tự hỏi điều gì sẽ trả lại cho nhà khai thác ++
? Với các lỗi biên dịch Tôi nhận tôi đã mong ++i
để không trở về một int
đại diện cho giá trị của i
tăng lên, nhưng điều đó cũng không phải là trường hợp kể từ khi tôi có thể làm i = (++i) + 1
với thành công ...
Bất kỳ ai có bất cứ ý tưởng tại sao Nhà điều hành ++
không thể bị xích?
Ngoài ra, (++i).GetType()
trả lại System.Int32
.
Bạn nên nhìn vào C++ hành quá tải có thể nó sẽ xóa mọi thứ lên http://stackoverflow.com/questions/4421706/operator-overloading –
Chỉ cần tò mò, không (++ i) ++ biên dịch? Tôi không có VS trước mặt tôi, vì vậy tôi không thể kiểm tra. – RLH
Không, không. Bởi vì '+ + i' trả về giá trị của' i' được tăng lên và không phải là biến. (Từ những gì tôi vừa học được: P) – Bun