C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.
Итак, класс System.Object предлагает следующие методы:
public static bool ReferenceEquals(object objA, object objB)
{
return objA == objB;
}
public static bool Equals(object objA, object objB)
{
return objA == objB || (objA != null && objB != null && objA.Equals(objB));
}
public virtual bool Equals(object obj)
{
Читать полностью »