C# での Null 許容値の型の識別
この記事では、C# の特定のオブジェクトが null 許容値型を表すかどうかを正確に判断する方法について説明します。 私たちは直接的なアプローチを検討し、その後、潜在的な落とし穴に対処するためのより堅牢で汎用的なソリューションを検討します。
基本的なアプローチ (IsNullableValueType
)
次の関数 IsNullableValueType
は、基本的なチェックを提供します。
<code class="language-csharp">bool IsNullableValueType(object o) { if (o == null) return true; // Null is considered nullable Type type = o.GetType(); if (!type.IsValueType) return true; // Reference types are treated as nullable if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T> return false; // Value type }</code>
基本的なアプローチの制限
ただし、この方法には、特にボックス化された値を扱う場合に制限があります。
より堅牢な汎用アプローチ (IsNullable
)
これらの制限に対処するために、より正確な解決策を提供する一般的な方法があります。
<code class="language-csharp">static bool IsNullable<T>(T obj) { if (obj == null) return true; // Null is nullable Type type = typeof(T); if (!type.IsValueType) return true; // Reference types are nullable if (Nullable.GetUnderlyingType(type) != null) return true; // Nullable<T> return false; // Value type }</code>
このジェネリック メソッド (IsNullable
) は、入力パラメーターから型 T
を推論し、特にボックス化された値を処理する場合に、Null 可能性を判断するためのより正確で型安全な方法を提供します。
続きを読む
C# の null 許容型に関する包括的な情報については、Microsoft の公式ドキュメントを参照してください: https://www.php.cn/link/55298ec38b13c613ce8ffe0f1d928ed2
以上がC# でオブジェクトが Null 許容値型を表しているかどうかを正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。