Maison >développement back-end >C++ >Comment puis-je déterminer de manière fiable si un type est nullable en C# ?
Une méthode améliorée pour déterminer de manière fiable si un type C# est nullable
Pour déterminer si un objet est explicitement déclaré comme type nullable, vous devez connaître son type sous-jacent et vérifier s'il s'agit d'un type valeur nullable. Bien que cela puisse être réalisé à l'aide de la conversion et de la réflexion de valeurs, cette approche n'est pas exhaustive car elle exclut les types de référence nullables.
Une solution plus robuste consiste à utiliser des génériques et l'inférence de type pour déterminer la nullité d'un type donné, comme suit :
<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>
Cette méthode utilise la méthode Nullable.GetUnderlyingType
pour déterminer si le type fourni est de type Nullable<T>
. En déterminant le type sous-jacent, il peut distinguer avec précision les types de valeur nullables et non nullables.
Bien que cette méthode soit très efficace lorsque vous travaillez avec des types génériques, elle peut être moins efficace lorsque vous travaillez avec des types de valeurs encadrées. Si la valeur a été encadrée dans un objet, son type sous-jacent est plus difficile à identifier.
Pour plus d'informations sur l'identification des types nullables, veuillez vous référer à :
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!