Resharper を使用して、Equals および GetHashCode メソッドを作成するだけです。この目的のために最も包括的なコードを作成します。
更新
意図的に投稿したわけではありません-コードはクラスごとに異なるため、コピーアンドペーストではなくResharperの機能を使用することをお勧めします。Resharper を使わずに C# を開発することに関しては、あなたの生き方がわかりません。
とにかく、これは単純なクラスのコードです(古いバージョンのResharper 3.0によって生成されました-私は4.0を使用していますが、現在、同一のコードが作成されるかどうかは覚えていません)
public class Foo : IEquatable<Foo>
{
public static bool operator !=(Foo foo1, Foo foo2)
{
return !Equals(foo1, foo2);
}
public static bool operator ==(Foo foo1, Foo foo2)
{
return Equals(foo1, foo2);
}
public bool Equals(Foo foo)
{
if (foo == null) return false;
return y == foo.y && x == foo.x;
}
public override bool Equals(object obj)
{
if (ReferenceEquals(this, obj)) return true;
return Equals(obj as Foo);
}
public override int GetHashCode()
{
return y + 29*x;
}
private int y;
private int x;
}