Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesan Jenis Rujukan Nullable dalam C# Menggunakan Refleksi?
Gunakan pantulan .NET untuk mengesan jenis rujukan nullable
C# 8.0 memperkenalkan jenis rujukan nullable, menyediakan cara yang lebih jelas untuk mengendalikan nilai nullable, meningkatkan kebolehbacaan kod dan memastikan pembangun menyedari potensi rujukan null.
Pertimbangkan kelas berikut yang mengandungi sifat nullable:
<code class="language-c#">public class Foo { public string? Bar { get; set; } }</code>
Jika anda ingin menentukan sama ada atribut kelas menggunakan jenis rujukan boleh batal melalui refleksi, anda boleh menggunakan kaedah berikut:
NullabilityInfoContext API
Dalam .NET 6 dan ke atas, NullabilityInfoContext API menyediakan cara yang mudah untuk menyemak jenis rujukan boleh null. Untuk maklumat lanjut, sila rujuk kepada dokumentasi yang berkaitan.
Semak sifat secara manual
Sebelum .NET 6, pemeriksaan manual hartanah diperlukan untuk menentukan kebolehtelapan. Kod berikut menunjukkan pendekatan ini:
<code class="language-c#">public static bool IsNullable(PropertyInfo property) => IsNullableHelper(property.PropertyType, property.DeclaringType, property.CustomAttributes);</code>Kaedah
IsNullableHelper berulang melalui jenis sifat, jenis yang diisytiharkan dan sifat tersuai untuk mengenal pasti sebarang sifat [NullableAttribute]
atau [NullableContextAttribute]
.
Jika mana-mana sifat ini ada dan mempunyai nilai 2, harta itu dianggap boleh dibatalkan. Jika tidak, ia tidak boleh dibatalkan.
Ringkasnya, menyemak jenis rujukan boleh batal menggunakan pantulan .NET melibatkan menyemak sifat tersuai dan menggunakan API yang sepadan dalam versi .NET yang berbeza.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Jenis Rujukan Nullable dalam C# Menggunakan Refleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!