Dalam .NET Development, yang ditakuti timbul apabila anda cuba mengakses ahli (harta, kaedah, dan lain -lain) objek yang kini null -bermakna ia tidak menunjukkan contoh objek yang sah. Ini biasanya berlaku kerana pembolehubah yang tidak dikenali atau tugasan null yang disengajakan.
punca akar: NullReferenceException
Objek yang tidak diinisialisasi:
pembolehubah yang diisytiharkan tetapi tidak diberikan nilai sebelum digunakan.1. Pemeriksaan null proaktif:
pernyataan bersyarat:
mempekerjakanif
Gunakan pengendali ??
GetValueOrDefault()
: Debug.Assert()
Debug.Assert()
2. Memanfaatkan. NET's Null Safety: operator null-conditional (
dan?.
Jenis rujukan yang tidak dapat dipertahankan (C# 8): ?[]
mengisytiharkan pembolehubah sebagai nullable () untuk membolehkan amaran pengkompil dan analisis statik untuk isu -isu null yang berpotensi. Ini meningkatkan keselamatan kod.
string? myString
Breakpoints: Tetapkan titik putus pada asal pengecualian untuk memeriksa keadaan berubah.
as
operator: ingat bahawa as
mengembalikan null pada cast yang gagal, mengelakkan pengecualian tetapi memerlukan pemeriksaan null. FirstOrDefault()
dan SingleOrDefault()
adalah alternatif yang lebih selamat untuk First()
dan Single()
dalam pertanyaan Linq kerana mereka mengendalikan hasil kosong dengan anggun.
foreach
Pastikan koleksi tidak null sebelum meleleh dengan . foreach
Amalan terbaik pencegahan:
dan menulis lebih banyak aplikasi. NET yang boleh dipercayai. NullReferenceException
Atas ialah kandungan terperinci Apa yang menyebabkan NullReferenceException dalam .NET dan bagaimana ia boleh dielakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!