==
C#では、、=<
または>
ユーザー定義オブジェクトなどの比較演算子をオーバーロードする方法はありますか?
"string"=="string"
yoが代わりに書くことができる方法に似ています"string".Equals("string")
CompareTo関数とEquals関数を定義できることは知っていますが、ショートカットがあるかどうか疑問に思いました。
==
C#では、、=<
または>
ユーザー定義オブジェクトなどの比較演算子をオーバーロードする方法はありますか?
"string"=="string"
yoが代わりに書くことができる方法に似ています"string".Equals("string")
CompareTo関数とEquals関数を定義できることは知っていますが、ショートカットがあるかどうか疑問に思いました。
==
目的のシグニチャで次のシグネチャを使用して関数を実装することにより、C#の演算子をオーバーライドできますclass
。
public static bool operator ==(YourClass a, YourClass b) { }
<=
同じことが演算子にも当てはまります>
。
オーバーライドすることにより、==
もオーバーライドする必要があり、および関数!=
をオーバーロードすることをお勧めします。Equals
GetHashcode
詳細については、以下をお読みください。
簡単な例:
class Foo
{
public int Id { get; set; }
public static bool operator ==(Foo first, Foo second)
{
return first.Id == second.Id;
}
public static bool operator !=(Foo first, Foo second)
{
return first.Id != second.Id;
}
}
EqualsとGetHashCodeもオーバーライドする必要があります