Maison >développement back-end >C++ >Comment puis-je déterminer si un type de valeur en C# est nullable ?
Vérifier les types de valeurs nullables
La détermination de la nullité d'un objet est un problème courant lorsqu'il s'agit de types valeur. Lors de la vérification des types valeur nullables, vous devez faire la distinction entre les types valeur nullables et les types référence nullables. Dans ce cas, nous devons identifier les types de valeur qui peuvent implicitement contenir des valeurs nulles. Voici comment y parvenir :
<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>
Cette méthode évalue le type d'objet :
Nullable.GetUnderlyingType
). Dans votre exemple, bc.myBool
fait référence à une valeur bool
non nullable, et obj
ne sera pas une instance de Nullable<bool>
. Pour gérer cette situation, créez un wrapper nullable autour de IsNullableValueType(bc.myBool)
uniquement si true
est évalué à obj
.
Instructions d'amélioration du code : Il y a une erreur dans Type type = typeof(T);
dans le code d'origine car T
n'est pas défini. Cela a été corrigé en Type type = o.GetType();
, en utilisant le type d'exécution de l'objet pour le jugement.
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!