2011-12-20 261 views
2

第一次海报所以请原谅我,如果我的格式是关闭或任何东西:)c#'string.Equals'返回错误的结果?

我的工作我的游戏引擎在C#中使用XNA,但是当我检查对现有节点,断言大火一个新的节点的名称即使列表中没有匹配的名称,也不可预料地关闭。下面是我指得代码:

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); 
     } 
    } 

断言将火关 - 对于示例 - 检查,“盒1”,并在列表中唯一的节点的名称为“根节点”的时候。

我得到同样的不可预知的结果使用: string == stringstring.CompareTo(string) > 0

任何想法? = \

回答

8

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

+0

啊,非常感谢。 – 2011-12-20 10:18:38

+0

当我发表最后一条评论时,我很匆忙,所以现在要详细说明一下,当你指出我错过使用Assert时,我感到非常愚蠢。因为我整天都在成功地使用它>>我想我的大脑刚刚关闭了一段时间哈哈。再次,非常感谢。 – 2011-12-21 07:12:00

+0

我想在正确的时间休息也是我们需要学习的技能:)。很高兴它帮助你。 – Yaron 2011-12-27 10:43:37