一个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);
}
你的问题出在这儿