Cách tốt nhất để tạo phương thức GetHashCode của riêng bạn cho một lớp trong C# là gì? Giả sử tôi có một lớp đơn giản (ghi đè phương thức Bằng), như sau:Tạo phương thức GetHashCode trong C#
class Test
{
public string[] names;
public double[] values;
public override bool Equals(object obj)
{
return (obj is Test) && this.Equals((Test)obj);
}
public bool Equals(Test t)
{
return names.Equals(t.names) && values.Equals(t.values);
}
}
Tôi có nên sử dụng mã mặc định cho phương pháp GetHashCode không?
public override int GetHashCode()
{
return base.GetHashCode();
}
Tôi có nên căn cứ vào nội dung lớp học của mình không?
public override int GetHashCode()
{
return names.GetHashCode() + values.GetHashCode() ;
}
Hoặc tôi có nên làm gì khác không?
Bạn không ghi đè đúng ở đây. – jjnguy
Trên thực tế, tôi nghĩ rằng nó sẽ dẫn đến stackoverflow. – jjnguy
Không, nó sẽ không tràn ngăn xếp. Tuy nhiên, nó cũng không hoạt động. – SLaks