Rumah >pembangunan bahagian belakang >C++ >C# Perbandingan String: Bilakah saya harus menggunakan `==` vs `sama ()`?

C# Perbandingan String: Bilakah saya harus menggunakan `==` vs `sama ()`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-01 19:16:13667semak imbas

C# String Comparison: When Should I Use `==` vs. `Equals()`?

C# String aksara Sama Seksual Masalah Seksual:

Dan Bandingkan == Equals() C# menawarkan dua pengendali rentetan perbandingan: dan

. Walaupun mereka seolah -olah dapat menukar, mereka menunjukkan tingkah laku yang unik dan boleh membawa kepada hasil yang tidak dijangka. Mari kita meneroka masalah bahasa ini melalui adegan tertentu.

== Dalam aplikasi Silverlight, satu keadaan membandingkan dua rentetan: Equals()

pelik,

Bandingkan palsu, dan
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // 执行代码
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // 执行代码
}</code>
panggil kembali benar. Mengapa terdapat perbezaan seperti itu?

== Jawapannya terletak pada pelaksanaan asas pengendali ini. Apabila digunakan dengan ekspresi objek, Equals() akan dinilai sebagai

. Kaedah ini membandingkan rujukan objek, bukan kandungan

==. Dalam kes ini, kedua -dua rentetan disimpan dalam kedudukan memori yang berbeza, jadi System.Object.ReferenceEquals kembali ke palsu. Sebaliknya, adalah kaedah maya yang boleh ditulis semula oleh jenis yang diperolehi. Untuk jenis rentetan, versi penulisan semula kandungan sebenar ReferenceEquals

, dengan itu kembali benar.

Oleh itu, untuk perbandingan rentetan rentetan, disyorkan untuk menggunakan Equals, ia lebih intuitif, dan ia melakukan perbandingan berasaskan kandungan.

Atas ialah kandungan terperinci C# Perbandingan String: Bilakah saya harus menggunakan `==` vs `sama ()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn