这两天在用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);
相等运算符重载中的问题        }

相等运算符重载中的问题
相等运算符重载中的问题}

相关文章: