C# 型が null 許容かどうかを確実に判断するための改良されたメソッド
オブジェクトが null 許容型として明示的に宣言されているかどうかを判断するには、その基になる型を知り、それが null 許容値型であるかどうかを確認する必要があります。これは値の変換とリフレクションを使用して実現できますが、このアプローチは null 許容の参照型を除外するため、包括的ではありません。
より堅牢な解決策は、次のようにジェネリックスと型推論を使用して、指定された型の null 可能性を判断することです。
<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>
このメソッドは、Nullable.GetUnderlyingType
メソッドを利用して、提供された型が Nullable<T>
型であるかどうかを判断します。基になる型を決定することにより、null 許容値の型と null 許容値以外の値の型を正確に区別できます。
このメソッドはジェネリック型を扱う場合には非常に効率的ですが、ボックス化された値型を扱う場合には効率が低くなる可能性があります。値がオブジェクトにボックス化されている場合、その基礎となる型を識別するのはさらに困難になります。
Null 許容型の識別の詳細については、以下を参照してください。
以上がC# で型が Null 可能かどうかを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。