7
documentation for the keyword "is"状態:キーワードとEqualsメソッドのオーバーライド「が」
ザオペレータでのみ基準変換、ボクシング コンバージョン、およびアンボクシング変換を考慮する。 ユーザー定義コンバージョンなどの他のコンバージョンは考慮されません。
実際にはどういう意味ですか? 構造体が特定の型であるかどうかをチェックするのは間違っていますか?例えば 、
public struct Point2D
{
public int X;
public int Y;
...
public override bool Equals(Object value)
{
if (value != null && value is Point2D) // or if (value != null && GetType() == value.GetType())
{
Point2D right = (Point2D)value;
return (X == right.X && Y == right.Y);
}
else return false;
}
...
}
値が不正です.GetType()== typeof(Point2D)はリファクタリングの事故からあなたを守ります。 –
[this](http://stackoverflow.com/questions/983030/type-checking-typeof-gettype-or-is)の理由はありますか? – enzom83
@enzom83それは正しいです。あなたがPoint2Dから継承することを気にしていて、子供が同じロジックを持つようにしたいのであれば(デフォルトでは)、 'is'がこのケースに適しています – McKay