1. 重载其中一个必须两个都要重载。
2. 不能在方法中使用==或!==运算符;
代码
public static bool operator ==(TestRefOperatorEquals te1, TestRefOperatorEquals te2)
{
/* 以下代码是错误的,因为操作符已被重载
if (te1==null && te2==null)
{
return true;
}
if (te1 !=null )
{
return te1.Equals(te2);
}
return false;
*/
//正确的方法
return object.ReferenceEquals(te1, te2);
}
{
/* 以下代码是错误的,因为操作符已被重载
if (te1==null && te2==null)
{
return true;
}
if (te1 !=null )
{
return te1.Equals(te2);
}
return false;
*/
//正确的方法
return object.ReferenceEquals(te1, te2);
}
3.对于值类型和引用类型的处理是不同的