Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengesan Jenis Rujukan Nullable dalam C# Menggunakan Refleksi?

Bagaimanakah Saya Boleh Mengesan Jenis Rujukan Nullable dalam C# Menggunakan Refleksi?

Mary-Kate Olsen
Lepaskan: 2025-01-18 10:32:09
asal
345 orang telah melayarinya

How Can I Detect Nullable Reference Types in C# Using Reflection?

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>
Salin selepas log masuk

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>
Salin selepas log masuk
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!

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