Rumah >pembangunan bahagian belakang >C++ >C# Perbandingan String: Bilakah saya harus menggunakan `==` vs `sama ()`?
C# String aksara Sama Seksual Masalah Seksual:
Dan ==
Equals()
C# menawarkan dua pengendali rentetan perbandingan: dan
==
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
==
. 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
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!