C# 對像比較:理解相等運算符和 Equals() 方法的區別
在 C# 中,相等比較是編程的關鍵部分。比較對像是否相等常用的兩種方法是相等運算符(== 和 !=)和 Equals() 方法。然而,理解這兩種方法的細微差別對於避免意外行為至關重要。
相等運算符 (== 和 !=)
相等運算符 (== 和 !=) 執行值類型相等比較。對於引用類型(例如字符串、對像等),它們比較的是對象引用,而不是對象的實際內容。這意味著如果兩個引用變量指向同一個對象實例,== 將返回 true,!= 將返回 false。
在你的示例中,你正在比較兩個字符串對象:
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // 执行代码 }</code>
由於字符串對像是不可變的,因此默認情況下它們被視為值類型。因此,== 運算符比較的是字符串的值,在本例中是不相等的。因此,條件將評估為 false。
Equals() 方法
Equals() 方法是一個虛擬方法,它在 System.Object 類中定義,並被各種類型重寫以提供特定類型的相等比較。與相等運算符不同,Equals() 方法比較的是對象的實際內容,而不管它們的引用如何。
對於字符串,Equals() 方法比較的是字符串的字符序列。由於你的情況涉及比較兩個字符串字面量,因此 Equals() 方法返回 true,因為字符序列相同。
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // 执行代码 }</code>
總結
使用相等運算符和 Equals() 方法的選擇取決於具體的場景和所需的行為。一般來說,== 運算符應該用於值類型相等比較,而 Equals() 方法應該用於引用類型相等比較,在這種情況下,你需要比較對象的實際內容。
以上是c#平等比較:我什麼時候應該使用`==`vs.的詳細內容。更多資訊請關注PHP中文網其他相關文章!