.NET リフレクションを使用して null 許容参照型を検出する
C# 8.0 では、null 許容参照型が導入され、null 許容値を処理するより明示的な方法が提供され、コードの可読性が向上し、開発者が潜在的な null 参照を認識できるようになります。
Null 許容プロパティを含む次のクラスを考えてみましょう:
<code class="language-c#">public class Foo { public string? Bar { get; set; } }</code>
クラス属性がリフレクションを通じて null 許容参照型を使用しているかどうかを確認したい場合は、次のメソッドを使用できます。
NullabilityInfoContext API
.NET 6 以降では、NullabilityInfoContext API を使用して、Null 許容参照型をチェックする便利な方法が提供されます。詳細については、関連ドキュメントを参照してください。
プロパティを手動で確認します
.NET 6 より前では、Null 可能性を判断するにはプロパティを手動で検査する必要がありました。次のコードは、このアプローチを示しています:
<code class="language-c#">public static bool IsNullable(PropertyInfo property) => IsNullableHelper(property.PropertyType, property.DeclaringType, property.CustomAttributes);</code>
IsNullableHelper メソッドは、プロパティの型、宣言された型、およびカスタム プロパティを反復処理して、[NullableAttribute]
または [NullableContextAttribute]
プロパティを識別します。
これらのプロパティのいずれかが存在し、値が 2 である場合、そのプロパティは null 可能とみなされます。それ以外の場合は、NULL 値を許容できません。
要約すると、.NET リフレクションを使用して null 許容参照型をチェックするには、カスタム プロパティをチェックし、さまざまなバージョンの .NET で対応する API を使用する必要があります。
以上がリフレクションを使用して C# で Null 許容参照型を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。