Chỉ cần đọc bài viết MSDN về ghi đè các nhà khai thác bình đẳng hereCast cho đối tượng trước khi kiểm tra null trong trọng Equals
Đoạn sau confuses me ...
// If parameter cannot be cast to Point return false.
TwoDPoint p = obj as TwoDPoint;
if ((System.Object)p == null) // <-- wtf?
{
return false;
}
Tại sao lại có một dàn diễn viên để Object
đây để thực hiện so sánh null
?
TwoDPoint là gì? Có thể là một loại giá trị của nó :-D – Grzenio
không. Kiểm tra các liên kết ... – jgauffin
Họ có một hướng dẫn tốt hơn cho Visual Studio 2012. Họ đã không đặt liên kết trong bài viết năm 2005, vì vậy tôi đặt nó ở đây: [Làm thế nào để: Xác định giá trị bình đẳng cho một loại (C# Lập trình Hướng dẫn) ] (http://msdn.microsoft.com/en-us/library/dd183755 (v = vs.110) .aspx). – Brk