В C#, как мы можем проверить ссылочное равенство для типа, реализующего оператор равенства?Как проверить ссылочное равенство для типа, реализующего оператор равенства?
class C
{
public int Val{get;set;}
public static bool operator ==(C c1, C c2)
{
return c1.Val == c2.Val;
}
public static bool operator !=(C c1, C c2)
{
return c1.Val != c2.Val;
}
}
class Program
{
public static void Main(string[] args)
{
C c1=new C(){Val=1};
C c2=new C(){Val=1};
Console.WriteLine(c1==c2);//True. but they are not same objects.
//How can I Check that?
Console.Write("Press any key to continue . . . ");
}
}
Um, 'x == y'? Не совсем понятно, что вы просите ... –
Что такое равенство объектов? Те же данные или одна и та же ссылка? –
Если вы имеете в виду ссылочное равенство (тот же адрес памяти), вы можете использовать 'object.ReferenceEquals (x, y)'. –