Semakan Jenis Nilai Nullable Boleh Dipercayai dalam C#
Mengesahkan kebolehbatalan objek jenis nilai dalam C# boleh menjadi rumit. Walaupun refleksi menawarkan kaedah, batasannya apabila berurusan dengan jenis nilai kotak menjadikannya tidak boleh dipercayai. Penyelesaian yang lebih mantap memanfaatkan generik untuk menilai secara langsung kebolehtelapan:
Coretan kod berikut dengan berkesan menentukan sama ada objek jenis nilai tertentu boleh dibatalkan:
<code class="language-csharp">static bool IsNullable<T>(T obj) { // Check for null (handles both reference and nullable value types) if (obj == null) return true; // Check if the type is a value type Type type = typeof(T); if (!type.IsValueType) return true; // Reference types are always nullable // Check if it's a Nullable<T> type if (Nullable.GetUnderlyingType(type) != null) return true; // Otherwise, it's a non-nullable value type return false; }</code>
Kaedah generik ini IsNullable<T>
mengambil objek jenis T
sebagai input dan mengembalikan true
jika ia boleh batal (sama ada jenis rujukan atau jenis nilai Nullable<T>
), dan false
sebaliknya. Ia secara langsung menangani kelemahan pendekatan berasaskan refleksi. Ambil perhatian bahawa kaedah ini masih mengendalikan jenis rujukan dengan betul, mengembalikan true
kerana ia sememangnya boleh dibatalkan. Untuk butiran lanjut tentang bekerja dengan jenis nullable, rujuk dokumentasi rasmi Microsoft.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa dengan Amanah sama ada Objek Jenis Nilai Boleh Nullable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!