c#'string.Equals'返回错误的结果?

时间:2011-12-20 09:37:23

标签: c# assert

第一次发布海报,请原谅我,如果我的格式是关闭或其他任何事情:)

我正在使用XNA在C#中使用我的游戏引擎但是当我检查现有节点的新节点的名称时,即使列表中没有匹配的名称,Assert也会无法预测地触发。这也是我所指的代码:

    public void CheckNameIsUnique(string cName)
    {
        for (int i = 0; i < m_aNodeList.Count; ++i)
        {
            Debug.Assert(m_aNodeList[i].GetName().Equals(cName),
                "USE OF NON-UNIQUE NAME: " + cName);
        }
    }

断言将触发 - 例如 - 在检查时,“box1”,列表中唯一的节点名称为“RootNode”。

我使用以下方法获得相同的不可预测的结果: string == stringstring.CompareTo(string) > 0

有什么想法吗? = \

2 个答案:

答案 0 :(得分:8)

Assert应该确保条件为TRUE。如果它为假,则断言将失败。 你想要的是断言它不相等。使用!=它应该没问题。

答案 1 :(得分:3)

如果条件为 false ,则会触发断言。你有条件的倒退。见这里:

http://msdn.microsoft.com/en-us/library/e63efys0.aspx