这两天在用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);
        }


}
posted on 2004-09-14 16:28  Laser.NET  阅读(1181)  评论(4编辑  收藏  举报
无觅相关文章插件,快速提升流量