Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mencegah dan mengendalikan NullReferenceExceptions dalam C#?

Bagaimanakah saya dapat mencegah dan mengendalikan NullReferenceExceptions dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-03 09:01:09522semak imbas

How Can I Prevent and Handle NullReferenceExceptions in C#?

Apakah NullReferenceException?

NullReferenception adalah runtime yang tidak normal di C#, dan ia berlaku apabila anda cuba mengakses ahli objek kosong. Ini mungkin berlaku dalam keadaan berikut:

    kaedah cuba memanggil objek kosong.
  • Cuba mengakses atribut objek kosong.
  • Cuba membatalkan penunjuk kosong rujukan.
bagaimana menyelesaikannya?

Terdapat beberapa cara untuk menyelesaikan kaedah NullReferenceExceuon:

    Periksa nilai kosong sebelum melawat ahli.
  • Sebelum mengakses mana -mana ahli objek, anda harus sentiasa memeriksa sama ada objek itu kosong. Anda boleh menggunakan jika pernyataan, seperti yang ditunjukkan dalam contoh berikut:
<code class="language-csharp">if (object != null)
{
    // 访问对象的成员。
}</code>
Gunakan pengendali penggabungan udara.
    Pengkomputeran Penggabungan Udara (??) membolehkan anda menentukan nilai lalai yang digunakan jika objek kosong. Sebagai contoh, jika objek tidak kosong, nilai atribut nama dikembalikan;
  • Gunakan pengendali keadaan kosong.
pengendali bersyarat (? Dan? []) Membenarkan anda mengakses ahli objek tanpa memeriksa nilai kosong terlebih dahulu. Sebagai contoh, jika objek tidak kosong, nilai atribut nama dikembalikan;
<code class="language-csharp">string name = object?.Name ?? "Unknown";</code>
  • Gunakan blok cuba/tangkapan. Anda juga boleh menggunakan blok cuba/menangkap untuk memproses NullReferenceExceptions. Sebagai contoh, kod berikut akan memproses NullReferenceExceuon dan mencetak mesej ke konsol:
<code class="language-csharp">string name = object?.Name;</code>

Atas ialah kandungan terperinci Bagaimanakah saya dapat mencegah dan mengendalikan NullReferenceExceptions dalam C#?. 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