Maison > développement back-end > C++ > Comment puis-je détecter les types de référence nullables en C# à l'aide de Reflection ?

Comment puis-je détecter les types de référence nullables en C# à l'aide de Reflection ?

Mary-Kate Olsen
Libérer: 2025-01-18 10:32:09
original
345 Les gens l'ont consulté

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

Utilisez la réflexion .NET pour détecter les types de référence nullables

C# 8.0 introduit des types de référence nullables, offrant un moyen plus explicite de gérer les valeurs nullables, améliorant la lisibilité du code et garantissant que les développeurs sont conscients des références nulles potentielles.

Considérez la classe suivante contenant des propriétés nullables :

<code class="language-c#">public class Foo
{
    public string? Bar { get; set; }
}</code>
Copier après la connexion

Si vous souhaitez déterminer si un attribut de classe utilise un type de référence nullable par réflexion, vous pouvez utiliser la méthode suivante :

API NullabilityInfoContext

Dans .NET 6 et versions ultérieures, l'API NullabilityInfoContext fournit un moyen pratique de vérifier les types de référence nullables. Pour plus d’informations, veuillez vous référer à la documentation correspondante.

Vérifier manuellement les propriétés

Avant .NET 6, une inspection manuelle des propriétés était nécessaire pour déterminer la nullité. Le code suivant illustre cette approche :

<code class="language-c#">public static bool IsNullable(PropertyInfo property) =>
    IsNullableHelper(property.PropertyType, property.DeclaringType, property.CustomAttributes);</code>
Copier après la connexion
La méthode

IsNullableHelper parcourt les types de propriétés, les types déclarés et les propriétés personnalisées pour identifier les propriétés [NullableAttribute] ou [NullableContextAttribute].

Si l'une de ces propriétés est présente et a une valeur de 2, la propriété est considérée comme nullable. Sinon, ce n’est pas nullable.

En résumé, la vérification des types de référence nullables à l'aide de la réflexion .NET implique la vérification des propriétés personnalisées et l'utilisation des API correspondantes dans différentes versions de .NET.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal