ホームページ >バックエンド開発 >C++ >反射を使用してクラスのプロパティを取得するにはどうすればよいですか?

反射を使用してクラスのプロパティを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-02-01 07:56:08114ブラウズ

How Can I Retrieve a Class's Properties Using Reflection?

リフレクションアクセスクラス属性を使用 質問:クラスのすべての属性のリストを取得するにはどうすればよいですか? 回答:

反射は、この問題の解決策を提供します。特定の例では、次のコードを使用できます。 タイプに関連付けられた属性にアクセスするには、次のものを使用してください。

次の例カテゴリを検討してください:

新しくインスタントfooオブジェクトの属性値を取得して表示するには:
<code class="language-csharp">obj.GetType().GetProperties();</code>

その他の注意事項:
<code class="language-csharp">typeof(Foo).GetProperties();</code>

<code class="language-csharp">class Foo {
    public int A {get;set;}
    public string B {get;set;}
}</code>

静的属性値を取得するには、GetValueの最初のパラメーターとしてnullを渡してください。

<code class="language-csharp">Foo foo = new Foo {A = 1, B = "abc"};
foreach(var prop in foo.GetType().GetProperties()) {
    Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
}</code>

非公開の属性を含めるには、薄い粒状結合ロゴを使用してください。

これにより、すべてのパブリックおよびプライベートインスタンス属性が取得されます。

以上が反射を使用してクラスのプロパティを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。