Rumah > pembangunan bahagian belakang > C++ > C# Perbandingan String: Bilakah == berbeza daripada sama dengan ()?

C# Perbandingan String: Bilakah == berbeza daripada sama dengan ()?

DDD
Lepaskan: 2025-02-01 18:56:08
asal
322 orang telah melayarinya

C# String Comparison: When Does == Differ From Equals()?

perbezaan antara pemahaman c# == dan sama dengan ()

Dalam C#, anda mungkin menghadapi situasi ini: gunakan == Perbandingan perbandingan komponen untuk membandingkan dua rentetan kembali kepada palsu, dan sama dengan () kaedah pulangan benar. Untuk memahami tingkah laku ini, anda mesti menguasai perbezaan asas pengendali ini.

Apabila digunakan untuk objek, nilai == Nilai pengendali adalah System.Object.ReferenceEquals. Ini bermakna ia memeriksa sama ada dua objek rentetan merujuk objek yang sama dalam ingatan. Sebaliknya, sama dengan () adalah kaedah maya yang boleh ditulis semula oleh jenis tersuai (termasuk rentetan).

Untuk rentetan, gunakan versi penulisan semula sama () untuk memeriksa kandungan sebenar rentetan. Oleh itu, jika anda membandingkan dua rentetan dengan watak yang sama tetapi disimpan dalam kedudukan memori yang berbeza, == akan kembali kepada palsu kerana mereka tidak dirujuk dalam objek yang sama, dan sama dengan () akan kembali ke Benar kerana ia sama.

Contoh kod:

Pertimbangkan serpihan kod berikut:

Dalam kod ini, kedua -dua syarat ini akan membandingkan sifat kandungan ListBoxItem yang dipilih dengan "serangan tenaga" rentetan. Walaupun keadaan pertama sama () dikira sebagai benar, jika harta kandungan adalah objek rentetan baru, keadaan kedua == mungkin dikira sebagai palsu. Ini kerana identifikasi semak operator ==, dan dua objek rentetan yang berbeza dengan nilai yang sama adalah berbeza.

Oleh itu, apabila membandingkan sifat yang sama rentetan dalam C#, adalah disyorkan untuk menggunakan kaedah sama () (ia menilai sifat yang sama kandungan) dan bukannya == (ia memeriksa logo).
if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // 执行代码
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // 执行代码
}
Salin selepas log masuk

Atas ialah kandungan terperinci C# Perbandingan String: Bilakah == berbeza daripada sama dengan ()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan