thể trùng lặp:
Why check this != null?Tại sao String.Equals (Object obj) kiểm tra xem nếu điều này == null?
// Determines whether two strings match.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public override bool Equals(Object obj)
{
//this is necessary to guard against reverse-pinvokes and
//other callers who do not use the callvirt instruction
if (this == null)
throw new NullReferenceException();
String str = obj as String;
if (str == null)
return false;
if (Object.ReferenceEquals(this, obj))
return true;
return EqualsHelper(this, str);
}
Phần Tôi không hiểu là một thực tế rằng nó được kiểm tra các trường hợp hiện tại, this
, chống lại null. Nhận xét có chút khó hiểu, vì vậy tôi đã tự hỏi ý kiến đó thực sự có ý nghĩa gì?
Bất cứ ai có thể đưa ra một ví dụ về việc làm thế nào điều này có thể phá vỡ nếu kiểm tra đó không có, và điều này có nghĩa là tôi cũng nên đặt kiểm tra trong các lớp học của tôi?
@FlorianGreinacher: Không phải là bản sao có thể, nhưng khá nhiều bản sao chính xác, lol. Tôi tự hỏi tại sao nó không xuất hiện trong "Liên quan" khi tôi viết câu hỏi của tôi? –