Tôi có câu hỏi về Object.Equals
và Equals(object)
. mẫu mã của tôi là dưới đây:C# Sự khác biệt giữa toán tử ==, StringBuilder.Equals, Object.Equals và Object.ReferenceEquals
class Program
{
static void Main(string[] args)
{
var sb1 = new StringBuilder("Food");
var sb2 = new StringBuilder("Food");
Console.WriteLine(sb1 == sb2);
Console.WriteLine(sb1.Equals(sb2));
Console.WriteLine(Object.Equals(sb1, sb2));
Console.WriteLine(Object.ReferenceEquals(sb1, sb2));
Console.ReadLine();
}
}
Đầu ra là:
False
True
False
False
Nhưng như xa như tôi quan tâm Object.Equals(sb1, sb2)
nội bộ gọi sb1.Equals(sb2)
vậy tại sao không đưa ra hai kết quả khác nhau?
Bạn nên đưa ra tiêu đề câu hỏi tốt hơn. Dòng điện không có nghĩa gì cả. Vui lòng không lặp lại các thẻ trong tiêu đề. –
@ReferenceEquals: Bạn so sánh bốn phương pháp so sánh. Tôi đã sửa đổi tiêu đề của bạn để phản ánh câu hỏi của bạn tốt hơn một chút. –
Tại sao bạn kiểm tra sự bình đẳng trên 2 trình xây dựng chuỗi? Nó giống như kiểm tra một dòng hoặc viết chữ cho sự bình đẳng. – leppie