Chào mn, mình có viết chương trình tính phương trình bậc 2. Mình viết operator + thì chạy bình tường nhưng mình viết operator== thì nó báo lỗi như vậy. Mình có tìm hiểu qua mạng thì cách viết của mình giống với cách viết của họ. Mong mọi người chỉ ra chỗ sai của mình, mình cảm ơn.
Nạp chồng toán tử == trong C#
Một khi nạp chồng toán tử == thì phải nạp chồng cả toán tử != luôn, tức là 1 thằng này không rời nhau 
Đơn giản trong != trả về giá trị ngược lại của == là được.
public static bool operator ==(QuadraticEquation A, QuadraticEquation B){
return A.Qa == B.Qa && A.Qb == B.Qb && A.Qc == B.Qc;
}
public static bool operator !=(QuadraticEquation A, QuadraticEquation B){
return !(A == B);
}
3 Likes
Cố gắng sửa hết cả các warning nữa nếu được.
2 Likes
Đâu phải lúc nào cũng cần GetHashCode 
Tại nó có liên quan với nhau và chỉ CẢNH BÁO chứ chưa phải là LỖI.
Thường thì khi nạp chồng toán tử == và !=, nhiều khi bên trong nó lại gọi đến Equals mà mặc định thì trong Equals lại gọi đến GetHashCode. Để đảm bảo tính toàn vẹn và chính xác nên nó khuyến khích nạp chồng luôn Equals và GetHashCode.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?