首頁 > 後端開發 > C++ > c#平等比較:我什麼時候應該使用`==`vs.

c#平等比較:我什麼時候應該使用`==`vs.

Linda Hamilton
發布: 2025-02-01 19:01:08
原創
955 人瀏覽過

C# Equality Comparisons: When Should I Use `==` vs. `Equals()`?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板