C# での信頼できる Null 許容値の型チェック
C# で値型オブジェクトの null 可能性を検証するのは難しい場合があります。 リフレクションはメソッドを提供しますが、ボックス化された値型を扱うときの制限により信頼性が低くなります。 より堅牢なソリューションでは、ジェネリックスを活用して null 可能性を直接評価します。
次のコード スニペットは、指定された値型オブジェクトが null 許容かどうかを効果的に判断します。
<code class="language-csharp">static bool IsNullable<T>(T obj) { // Check for null (handles both reference and nullable value types) if (obj == null) return true; // Check if the type is a value type Type type = typeof(T); if (!type.IsValueType) return true; // Reference types are always nullable // Check if it's a Nullable<T> type if (Nullable.GetUnderlyingType(type) != null) return true; // Otherwise, it's a non-nullable value type return false; }</code>
このジェネリック メソッド IsNullable<T>
は、型 T
のオブジェクトを入力として受け取り、null 許容 (参照型または true
値型) の場合は Nullable<T>
を返し、それ以外の場合は false
を返します。 これは、リフレクションベースのアプローチの欠点に直接対処します。 このメソッドは参照型を引き続き正しく処理し、本質的に null 許容であるため true
を返すことに注意してください。 null 許容型の操作の詳細については、Microsoft の公式ドキュメントを参照してください。
以上がC# で値型オブジェクトが Null 可能かどうかを確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。