Maison >développement back-end >C++ >Comment puis-je vérifier si un objet C# est un type de valeur Nullable ?
Vérification de la nullité des objets C#
En C#, il est crucial de faire la distinction entre les objets nullables et non nullables. Cet article se concentre sur la façon de déterminer si un objet est nullable, en se concentrant sur les types valeur plutôt que sur les types référence.
Méthode de mise en œuvre :
L'extrait de code suivant montre une façon de vérifier si un objet est un type de valeur nullable :
<code class="language-csharp">bool IsNullableValueType(object o) { if (o == null) return true; // 显而易见的情况 Type type = o.GetType(); // 修正此处,使用 o.GetType() 获取对象的实际类型 if (!type.IsValueType) return true; // 引用类型 if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T> return false; // 值类型 }</code>
Explication du code :
Cette méthode vérifie trois situations :
Nullable.GetUnderlyingType
vérifie si le type de o est de type Nullable<T>
. o est un type valeur nullable s'il renvoie un type non nul. Manipulation des objets en boîte :
Cependant, cette méthode peut échouer si o est un type de valeur encadrée. Ce problème peut être surmonté en utilisant des génériques :
<code class="language-csharp">static bool IsNullable<T>(T obj) { if (obj == null) return true; // 显而易见的情况 Type type = typeof(T); if (!type.IsValueType) return true; // 引用类型 if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T> return false; // 值类型 }</code>
En utilisant des génériques, cette méthode modifiée peut déduire le type de T à partir de l'objet transmis, ce qui fonctionne même si o a été encadré.
Plus de ressources :
Pour plus d'informations sur les types nullables en C#, consultez la documentation de Microsoft : https://www.php.cn/link/55298ec38b13c613ce8ffe0f1d928ed2
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!