ホームページ > バックエンド開発 > C++ > C# で型が Null 可能かどうかを確実に判断するにはどうすればよいですか?

C# で型が Null 可能かどうかを確実に判断するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-13 11:47:42
オリジナル
885 人が閲覧しました

How Can I Reliably Determine if a Type is Nullable in C#?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート