以下代码的输出如下:
不相等
相等 请注意x和xx的类型差异,==操作符重载仅在第二种情况下执行,而在第一种情况下不执行。
有没有办法重载==操作符,以便在比较MyDataObejct实例时始终执行它?
编辑1:#我想在MyDataClass上覆盖==运算符,我不确定如何做到让case1也执行重载的==实现。
相等 请注意x和xx的类型差异,==操作符重载仅在第二种情况下执行,而在第一种情况下不执行。
有没有办法重载==操作符,以便在比较MyDataObejct实例时始终执行它?
编辑1:#我想在MyDataClass上覆盖==运算符,我不确定如何做到让case1也执行重载的==实现。
class Program {
static void Main(string[] args) {
// CASE 1
Object x = new MyDataClass();
Object y = new MyDataClass();
if ( x == y ) {
Console.WriteLine("equal");
} else {
Console.WriteLine("not equal");
}
// CASE 2
MyDataClass xx = new MyDataClass();
MyDataClass yy = new MyDataClass();
if (xx == yy) {
Console.WriteLine("equal");
} else {
Console.WriteLine("not equal");
}
}
}
public class MyDataClass {
private int x = 5;
public static bool operator ==(MyDataClass a, MyDataClass b) {
return a.x == b.x;
}
public static bool operator !=(MyDataClass a, MyDataClass b) {
return !(a == b);
}
}