Rumah > pembangunan bahagian belakang > C++ > Bolehkah Jenis Nilai dalam C# Dibandingkan dengan Null, dan Jika Ya, Bagaimana?

Bolehkah Jenis Nilai dalam C# Dibandingkan dengan Null, dan Jika Ya, Bagaimana?

Patricia Arquette
Lepaskan: 2025-01-16 18:20:45
asal
554 orang telah melayarinya

Can Value Types in C# Be Compared to Null, and If So, How?

Jenis nilai C# dan perbandingan nol

Dalam C#, jenis nilai tidak boleh diberikan kepada null. Ini kerana jenis nilai disimpan pada tindanan, dan tindanan tidak membenarkan rujukan nol. Walau bagaimanapun, jenis nilai boleh dibandingkan dengan null menggunakan operator kesamaan (==) atau operator ketaksamaan (!=).

Pertimbangkan kod berikut:

<code class="language-csharp">int x = 1;
if (x == null)
{
    Console.WriteLine("What the?");
}</code>
Salin selepas log masuk

Kod ini tidak akan membuang ralat masa kompilasi, walaupun nilai int tidak boleh batal. Ini kerana pengendali kesamarataan dibebankan untuk membolehkan jenis nilai dibandingkan dengan jenis nilai boleh batal. Jenis nilai nullable ialah pembalut yang boleh mengandungi nilai jenis asas atau null.

Dalam kes ini, nilai int x ditukar secara tersirat kepada int nullable dan kemudian dibandingkan dengan literal null. Perbandingan sentiasa palsu, jadi mesej "What the?"

Walau bagaimanapun, jika anda cuba memberikan nilai nol kepada jenis nilai, anda mendapat ralat masa kompilasi:

<code class="language-csharp">int x = null; // Error CS0037: Cannot convert null to 'int' because it is a non-nullable value type</code>
Salin selepas log masuk

Ini kerana tiada penukaran tersirat daripada jenis nilai nol kepada tidak boleh batal.

Ringkasnya, jenis nilai boleh dibandingkan dengan null menggunakan pengendali kesamaan atau ketidaksamaan. Walau bagaimanapun, nilai nol tidak boleh diberikan kepada mereka. Tingkah laku ini membolehkan fleksibiliti dalam pengekodan sambil mengekalkan integriti jenis nilai.

Atas ialah kandungan terperinci Bolehkah Jenis Nilai dalam C# Dibandingkan dengan Null, dan Jika Ya, Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan