Rumah >pembangunan bahagian belakang >C++ >Apakah yang dilakukan oleh Operator `null!` C# dan Bilakah Anda Harus Menggunakannya?

Apakah yang dilakukan oleh Operator `null!` C# dan Bilakah Anda Harus Menggunakannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-09 10:15:42200semak imbas

What Does the C# `null!` Operator Do and When Should You Use It?

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:

  • Apabila pengkompil tidak dapat mengesan bahawa nilai yang boleh dibatalkan sebenarnya tidak boleh dibatalkan.
  • Apabila memindahkan kod lama yang bergantung pada jenis nullable.
  • Dalam sesetengah kes, anda mahu mengabaikan semakan kebolehtelapan dan mengendalikan nilai nol secara eksplisit.
  • Simulasikan senario nol dalam kes ujian tanpa menyebabkan ralat masa kompilasi.

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!

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