Rumah >pembangunan bahagian belakang >C++ >Mengapa Visual Studio Mencadangkan Jenis Nullable untuk Tatasusunan Baru Dicipta dalam C#?
Mengapa Visual Studio Menaip Tatasusunan Baru Dicetak sebagai Nullable?
Apabila mengisytiharkan tatasusunan baharu dalam C#, Visual Studio mungkin mencadangkan menambah ? operator untuk menunjukkan bahawa jenis itu mungkin boleh dibatalkan. Ini boleh memeranjatkan, kerana anda menjangkakan tatasusunan yang baru instantiated sentiasa mempunyai nilai bukan nol.
Jenis Rujukan Nullable
Dalam C# 8.0 dan lebih baru, nullable jenis rujukan telah tersedia. Ciri ini membolehkan anda membuat anotasi jenis rujukan dengan ? untuk menunjukkan bahawa mereka boleh diberikan nilai nol. Apabila didayakan, pengkompil akan menyemak kemungkinan rujukan nol dan mengeluarkan amaran atau ralat dengan sewajarnya.
Taipan Tersirat
Apabila menggunakan kata kunci var untuk mengisytiharkan pembolehubah, jenis disimpulkan daripada ungkapan permulaan. Jika anda menetapkan tatasusunan kepada pembolehubah var, ia akan membuat kesimpulan jenis sebagai TVal[]?, dengan TVal ialah jenis elemen tatasusunan. Ini kerana var menyimpulkan jenis rujukan boleh nullable untuk jenis rujukan apabila konteks boleh nullable didayakan.
Sebab Tatasusunan Nullable
Sebab bagi tingkah laku ini ialah Visual Studio cuba untuk berhati-hati dan berhati-hati terhadap rujukan yang berpotensi batal. Walaupun benar bahawa tatasusunan yang baru ditempa tidak mungkin menjadi batal, tatasusunan mungkin menjadi batal kemudian hari, sama ada secara eksplisit (cth., memberikan null kepadanya) atau secara tersirat (cth., mengubah saiz tatasusunan kepada panjang sifar).
Kesimpulan
Walaupun jarang berlaku tatasusunan yang baru dicetak menjadi batal, Visual Studio mencadangkan menganotasikannya dengan ? operator sebagai langkah keselamatan untuk mengelakkan kemungkinan pengecualian rujukan nol kemudian dalam kod. Jika anda pasti tatasusunan tidak akan diberikan null, anda boleh mengalih keluar ? pengendali.
Atas ialah kandungan terperinci Mengapa Visual Studio Mencadangkan Jenis Nullable untuk Tatasusunan Baru Dicipta dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!