Rumah >pembangunan bahagian belakang >C++ >Apakah Maksud Tanda Soalan dalam Jenis Nilai C# (cth., `int?`)?

Apakah Maksud Tanda Soalan dalam Jenis Nilai C# (cth., `int?`)?

Barbara Streisand
Barbara Streisandasal
2025-01-26 08:51:10744semak imbas

What Does the Question Mark Mean in C# Value Types (e.g., `int?`)?

C# Nilai Jenis Soalan: Memahami Jenis Kosong

Tanda Soalan "?" Walau bagaimanapun, ia juga muncul dalam jenis nilai, seperti

. Dalam kes ini, apakah peranan tanda tanya ini? public int? myProperty

boleh mengosongkan jenis

tanda soalan di belakang jenis nilai menunjukkan bahawa ia adalah jenis kosong. Boleh kosong jenis adalah contoh khas struktur , yang dapat menampung seluruh julat yang berkesan dari jenis asas, dan kekosongan khas.

Fungsi ini amat berguna apabila memproses senario pangkalan data atau elemen lain yang sengaja kekurangan nilai. Sebagai contoh, senarai pangkalan data yang membolehkan nilai Boolean mungkin mengandungi benar, palsu, atau null. System.Nullable

kod sampel

Pertimbangkan serpihan kod berikut:

di sini, pembolehubah ditakrifkan sebagai integer udara -yang tersedia (), yang boleh menjimatkan nilai integer atau null.

Atribut membolehkan kita memeriksa sama ada pembolehubah mengandungi nilai yang berkesan. Jika adalah benar, kita boleh menggunakan

untuk mendapatkan nilai sebenar. Jika tidak, dianggap null.
<code class="language-csharp">class NullableExample
{
    static void Main()
    {
        int? num = null;

        // 判断 HasValue 是否为 true
        if (num.HasValue)
        {
            System.Console.WriteLine("num = " + num.Value);
        }
        else
        {
            System.Console.WriteLine("num = Null");
        }

        // 如果 num 为 null,则赋值默认值 0
        int y = num.GetValueOrDefault();

        // 如果 num.HasValue 为 false,则抛出 InvalidOperationException
        try
        {
            y = num.Value;
        }
        catch (System.InvalidOperationException e)
        {
            System.Console.WriteLine(e.Message);
        }
    }
}</code>

Atas ialah kandungan terperinci Apakah Maksud Tanda Soalan dalam Jenis Nilai C# (cth., `int?`)?. 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