Rumah >pembangunan bahagian belakang >C++ >Apakah yang dilakukan oleh Operator `null!` C# dan Bilakah Anda Harus Menggunakannya?
Maksud "null!" dalam C#
Fahami "!" operator
C# 8.0 memperkenalkan jenis rujukan boleh batal, membenarkan kawalan terperinci ke atas kebolehbatalan pembolehubah dan jenis rujukan. Apabila digunakan pada jenis, pengendali "!" (juga dikenali sebagai "pengendali null ignore") menukar status kebolehbatalan jenis daripada tidak boleh dibatalkan kepada tidak boleh dibatalkan.
Penggunaan "null!"
Pernyataan "null!" menggunakan operator "!" kepada literal nol, menunjukkan bahawa nilai nol harus dianggap sebagai tidak boleh dibatalkan. Ini mengatasi kebolehbatalan lalai literal nol dan memaksa pengkompil untuk menganggap bahawa nilai itu bukan nol.
Penggunaan biasa
Pertimbangkan kod berikut:
<code class="language-csharp">public class Person { public string? MiddleName; // 可空 public string LastName = null!; // 不可空 }</code>
Dalam contoh ini, sifat "MiddleName" boleh dibatalkan, bermakna ia boleh menyimpan nilai nol. Walau bagaimanapun, sifat "Nama Akhir" ditandakan sebagai tidak boleh dibatalkan menggunakan "null!". Ini bermakna bahawa pengkompil akan menguatkuasakan bahawa sifat "Nama Akhir" tidak akan kekal batal, walaupun ia pada mulanya diberikan nilai nol.
Penjelasan teknikal
Bermula dalam C# 8.0, semua jenis rujukan tidak boleh dibatalkan secara lalai. Pengendali "!" membenarkan anda untuk mengatasi tetapan ini, menjadikan jenis yang boleh dibatalkan tidak boleh dibatalkan. Sebaliknya, pengendali "?" membuat jenis yang tidak boleh dibatalkan.
Gunakan dengan berhati-hati
Pengendali "null!" harus digunakan dengan berhati-hati. Ia mengatasi semakan keselamatan nol pengkompil, yang mungkin menutup kemungkinan pengecualian rujukan nol semasa masa jalan. Anda hanya perlu menggunakannya jika anda pasti bahawa nilai yang boleh dibatalkan tidak akan menjadi batal.
Alternatif
Dalam kebanyakan kes, lebih baik menggunakan alternatif untuk mengelak daripada menggunakan "pengendali nol!" Sebagai contoh, anda boleh menggunakan jenis nullable dan operator penggabungan null, atau secara eksplisit menyemak nilai null sebelum mengaksesnya.
Bila hendak menggunakan "null!"
Pengendali "null!" berguna dalam situasi tertentu:
Atas ialah kandungan terperinci Apakah yang dilakukan oleh Operator `null!` C# dan Bilakah Anda Harus Menggunakannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!