У меня есть класс Address в С#, который выглядит так:
public class Address
{
public string StreetAddress { get; set; }
public string RuralRoute { get; set; }
public string City { get; set; }
public string Province { get; set; }
public string Country { get; set; }
public string PostalCode { get; set; }
}
Я выполняю равенство и поэтому мне нужно переопределить хэш-код. Сначала я собирался использовать формулу hashcode от EJ, но потом я подумал: все это строковые поля, не могу ли я просто использовать StringBuilder для их конкатенации и вернуть хеш-код из этой строки?
То есть:
var str = new StringBuilder();
str.Append(StreetAddress)
.Append(RuralRoute)
...
return str.ToString().GetHashCode();
Каковы преимущества/недостатки этого? Почему я не должен это делать?