2011-12-20 260 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