Сообщение от pozitiffcat
переопределить операторы == и !=
Я пробовал переопределять... но происходит зацикливание,
вот почему
if((first!=null) && (second!=null))//<<тут зацикливание
{
if(first._handle == second._handle) return true;
}
return false;
Префикс не уберу. Я хочу чтобы он остался. Это мой "загон"
|
эм... не мешалобы подучить матчасть
http://blog.nguen.net/post191-override_equals.html
по поводу шанса null -
простой вариант -
class Test
{
public int X;
public override bool Equals (object obj)
{
if(obj is Test)
{
return X==((Test)obj).X;
}
return base.Equals (obj);
}
public static bool operator==(Test obj,Test obj2)
{
if(obj is Test)
{
return obj.Equals(obj2);
}
else if(obj2 is Test)
{
return obj2.Equals(obj);
}
return false;
}
public static bool operator!=(Test obj,Test obj2)
{
if(obj is Test)
{
return !obj.Equals(obj2);
}
else if(obj2 is Test)
{
return !obj2.Equals(obj);
}
return true;
}
}