Dalam beberapa senario pengaturcaraan, pemaju mungkin menghadapi kemalangan apabila menggunakan kaedah pengkomputeran yang sama (==) dan sama dengan (). Perbezaan ini amat membingungkan apabila == mengembalikan palsu dan sama () untuk kembali benar, seperti contoh yang ditunjukkan di atas.
== Prinsip kerja:
Apabila diterapkan pada objek, pengkomputeran yang sama (==) bergantung pada kaedah rujukan (). Secara ringkas, ia menentukan sama ada objek itu sama persis, bukan hanya satu salinan dengan nilai yang sama.
sama dengan () Prinsip Kerja:
Sebaliknya, kaedah sama () adalah kaedah maya yang membolehkan kelas menulis semula pelaksanaan lalai. Secara lalai, nilai sama () membandingkan dari System.Object berasal dari System.Object. Walau bagaimanapun, kelas boleh menulis semula tingkah laku ini untuk memberikan perbandingan tersuai mengikut keperluan khususnya. Contoh:
Dalam contoh yang disediakan, harta kandungan ListBoxItem sedang diperiksa dengan rentetan "serangan tenaga". Apabila menggunakan ==, ia gagal kerana kedua -dua rentetan ini tidak disimpan di lokasi memori yang sama. Walau bagaimanapun, sama () pulangan benar kerana nilai rentetan adalah sama.
kepentingan pemahaman perbezaan:
Perbezaan antara pemahaman == dan sama dengan () adalah sangat penting, yang boleh menghalang tingkah laku tidak sengaja dan memastikan pelaksanaan kod yang betul. Apabila ia lebih cenderung untuk menulis semula objek yang dilaksanakan dengan sama dengan (), menggunakan sama () adalah kaedah yang lebih selamat dan lebih dipercayai untuk memastikan pemeriksaan yang sama betul mengikut semantik yang dijangkakan kelas.
Atas ialah kandungan terperinci C# Objek: Bilakah saya harus menggunakan `==` vs `sama ()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!