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
Lepaskan: 2025-02-01 19:16:13
asal
665 orang telah melayarinya

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>
Salin selepas log masuk
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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan