Có thể trùng lặp:
Why must we define both == and != in C#?quá tải + =, +, ==, và các nhà khai thác =
Tại sao quá tải của + = có thể chỉ do quá tải của +, nhưng == và! = bị quá tải riêng?
Có vẻ như nó sẽ bị đảo ngược.
+ = quá tải là gần như luôn luôn có thể viết hiệu quả hơn bởi vì nó không cần thiết để cấp phát bộ nhớ cho đối tượng mới. Nhưng tôi không thể phát minh ra một ví dụ trong đó toán tử == và! = Nên khác trong một cái gì đó ngoại trừ đảo ngược kết quả bằng().
+1 Chỉ cần tưởng tượng sự điên rồ nếu bạn có thể quá tải '+' và '+ =' riêng ... –
Nếu C# và .net không làm điều xấu với cấu trúc có thể thay đổi (cấu trúc có thể biến đổi không phải là điều ác - một số mọi thứ .net thực hiện với chúng), hoặc nếu chúng cho phép các lớp hạn chế việc chia sẻ các tham chiếu đến các đối tượng của chúng, thì sẽ hữu ích khi có các toán tử + = và + riêng biệt, vì sử dụng toán tử "+" sao chép và để nguyên bản gốc, trong khi "+ =" ngụ ý ban đầu có thể được sửa đổi. Lưu ý, btw, sự kiện đó hỗ trợ "+ =" và "- =", nhưng không hỗ trợ "+" và "-". – supercat