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>
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>
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!