Maison >développement back-end >C++ >Comment puis-je vérifier de manière fiable si un objet de type valeur est nullable en C# ?
Vérifications fiables du type de valeur nullable en C#
Vérifier la nullité des objets de type valeur en C# peut être délicat. Bien que la réflexion offre une méthode, ses limites lorsqu'il s'agit de types de valeurs encadrées la rendent peu fiable. Une solution plus robuste exploite les génériques pour évaluer directement la nullité :
L'extrait de code suivant détermine efficacement si un objet de type valeur donné est nullable :
<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>
Cette méthode générique IsNullable<T>
prend un objet de type T
en entrée et renvoie true
s'il est nullable (soit un type référence, soit un type valeur Nullable<T>
), et false
sinon. Il aborde directement les lacunes des approches fondées sur la réflexion. Notez que cette méthode gère toujours correctement les types de référence, renvoyant true
car ils sont intrinsèquement nullables. Pour plus de détails sur l'utilisation des types nullables, consultez la documentation officielle de Microsoft.
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!