这两天在用C#的相等操作符重载的时候碰到下面的问题,会导致死循环,不知道有没有比较好的解决方法?因为一定要判断参数是否为null,所以会用到==与null比较,从而调用了操作符重载导致死循环。不知道除了用==之外有没有其他的方法可以判断一个对象是否为null?还请大家指教:)
public class ColumnDataType
{
public static bool AreEqual(ColumnDataType type1, ColumnDataType type2)
{
if (type1 == null || type2 == null) // 这里会调用操作符重载的方法从而导致死循环!
{
return false;
}
else if (type1._primitiveType == type2._primitiveType
&& type1._parameter1 == type2._parameter1
&& type1._parameter2 == type2._parameter2)
{
return true;
}
else
{
return false;
}
}
public static bool operator == (ColumnDataType type1, ColumnDataType type2)
{
return ColumnDataType.AreEqual(type1, type2);
}
public static bool operator != (ColumnDataType type1, ColumnDataType type2)
{
return !ColumnDataType.AreEqual(type1, type2);
}
}