ホームページ > バックエンド開発 > C++ > C# リフレクションを使用して型から定数を抽出する方法

C# リフレクションを使用して型から定数を抽出する方法

Linda Hamilton
リリース: 2025-01-05 19:43:44
オリジナル
398 人が閲覧しました

How to Extract Constants from a Type Using C# Reflection?

リフレクションを使用して任意の型から定数を抽出する方法

リフレクションは、実行時に型を検査する強力な方法を提供します。これにより、型のプロパティ、メソッド、さらにはその定数に関する情報を取得できます。

リフレクションを使用して型のすべての定数を取得するには、特定のバインド フラグを指定して GetFields メソッドを利用できます。

BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy
ログイン後にコピー

これらのフラグにより​​、現在の型またはその基本型で宣言されているすべてのパブリックな静的フィールドが確実に取得されます。

After FieldInfo オブジェクトの配列を取得する場合、IsLiteral フラグと IsInitOnly フラグをチェックすることで定数のみを含むようにオブジェクトをフィルタリングできます。

if(fi.IsLiteral && !fi.IsInitOnly)
ログイン後にコピー

IsLiteral フラグはフィールドの値がコンパイル時に割り当てられることを示し、IsInitOnly フラグはフィールドの値がコンパイル時に割り当てられることを示します。フィールドがコンストラクター内でのみ初期化できることを示します。定数の場合、これらのフラグは両方とも true である必要があります。

このアプローチを使用すると、リフレクションを使用して任意の型からすべての定数を効率的に抽出できます。

private List<FieldInfo> GetConstants(Type type)
{
    return type.GetFields(BindingFlags.Public | BindingFlags.Static |
            BindingFlags.FlattenHierarchy)
        .Where(fi => fi.IsLiteral && !fi.IsInitOnly).ToList();
}
ログイン後にコピー

このメソッドは、FieldInfo オブジェクトのリストを返します。指定された型内で宣言された定数を表します。

以上がC# リフレクションを使用して型から定数を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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