日期:2014-05-18  浏览次数:21150 次

一个C#怪问题
我定义了一个level类,继承自System.IComparable类,定义了一个方法如下:
  public static bool operator !=(Level l, Level r)
  {
  return !(l == r);
  }
不是很明白这个方法是什么意思,但是程序运行到这个地方的时候老报错,报错内容是:未处理的“System.StackOverflowException”类型的异常出现
帮忙解释下上边那个方法是什么意思,这个地方的错误怎么解决

------解决方案--------------------
你这个不会是陷入死循环了吧?
那个==是怎样定义的呢?
------解决方案--------------------
public static int Compare(Level l, Level r) 
{ 
if (l == r) 
{ 
return 0; 
} 
if ((l == null) && (r == null)) 
{ 
return 0; 
} 
if (l == null) 
{ 
return -1; 
} 
if (r == null) 
{ 
return 1; 
} 
return (l.m_levelValue - r.m_levelValue); 
} 
你的问题出在这儿