documentation for the keyword "is" devletler:anahtar kelime ve Eşittir yönteminin geçersiz kılma "dır"
is operatörü olan tek referans dönüşümleri, boks dönüşümler ve unboxing dönüşümleri dikkate alır. Kullanıcı tanımlı dönüşümler gibi gibi diğer dönüşümler dikkate alınmaz.
Pratikte ne anlama gelir? Bir yapının belirli bir tür olup olmadığını kontrol etmek yanlış mı kullanılır? Örneğin ,
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;
}
...
}
Bu yanlıştır, value.GetType() == typeof (Point2D) sizi refactoring kazalarına karşı korur. –
[this] (http://stackoverflow.com/questions/983030/type-checking-typeof-gettype-or-is) nedeni nedir? – enzom83
@ enzom83 Bu doğru. Point2D'den miras almayı önemsiyorsanız ve aynı mantığa sahip olmak istiyorsanız (varsayılan olarak) bu durum için uygun olabilir. – McKay