C# の PropertyInfo クラスを詳しく見てみる

WBOY
リリース: 2024-02-20 10:24:07
オリジナル
780 人が閲覧しました

C# の PropertyInfo クラスを詳しく見てみる

#C での PropertyInfo クラスのケースの詳細な説明

#はじめに

C# は、操作と管理に便利なクラスとメソッドを多数提供するオブジェクト指向プログラミング言語です。オブジェクトのプロパティ。 PropertyInfo クラスは、クラスのプロパティを取得および操作するために使用される .NET Framework の特別なクラスです。この記事では、PropertyInfo クラスの使用法を詳細に説明し、サンプル コードを通じてその使用法を示します。

PropertyInfo クラスの概要

PropertyInfo クラスは System.Reflection 名前空間の下にあり、抽象クラスです。これは、クラス属性情報を取得および操作するための一連のメソッドとプロパティを提供します。 PropertyInfo クラスを通じて、プロパティの名前、タイプ、アクセス権、およびその他の情報を取得し、リフレクション メカニズムを通じてプロパティの値を動的に読み書きできます。

サンプル コード

簡単な例を通じて、PropertyInfo クラスの使用法を紹介します。 name と age の 2 つの属性を含む Person クラスがあるとします。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
ログイン後にコピー

次に、PropertyInfo クラスを通じて Person クラスの属性情報を取得し、操作する必要があります。まず、System.Reflection 名前空間をインポートする必要があります:

using System.Reflection;
ログイン後にコピー

次に、次のコードを使用して、Person クラスの属性情報を取得できます:

Type type = typeof(Person);
PropertyInfo[] properties = type.GetProperties();
ログイン後にコピー

上記のコードでは、まず、typeof キー Word を使用して Person クラスの Type オブジェクトを取得し、次に GetProperties メソッドを通じてクラスのすべてのパブリック プロパティ情報を取得します。返されるのは PropertyInfo 配列で、各要素はプロパティを表します。

属性の名前と型を取得する

次に、配列を走査して各属性の名前と型を取得します。サンプル コードは次のとおりです。

foreach (PropertyInfo property in properties)
{
    string name = property.Name;
    Type propertyType = property.PropertyType;
    Console.WriteLine("属性名称:{0},属性类型:{1}", name, propertyType);
}
ログイン後にコピー

上記のコードでは、Name 属性と PropertyType 属性を通じてプロパティの名前と型をそれぞれ取得し、Console.WriteLine メソッドを通じて出力します。

プロパティの値の読み取りと書き込み

PropertyInfo クラスは、プロパティの名前と型を取得するだけでなく、プロパティの値を動的に読み取りおよび書き込みするための GetValue メソッドと SetValue メソッドも提供します。

パーソン オブジェクトがあるとします:

Person person = new Person()
{
    Name = "张三",
    Age = 25
};
ログイン後にコピー

次のコードを通じてオブジェクトの属性値を読み書きできます:

PropertyInfo nameProperty = type.GetProperty("Name");
string nameValue = nameProperty.GetValue(person) as string;

PropertyInfo ageProperty = type.GetProperty("Age");
int ageValue = (int)ageProperty.GetValue(person);

Console.WriteLine("姓名:{0},年龄:{1}", nameValue, ageValue);

nameProperty.SetValue(person, "李四");
ageProperty.SetValue(person, 30);

Console.WriteLine("姓名:{0},年龄:{1}", person.Name, person.Age);
ログイン後にコピー

上記ではコードでは、GetProperty メソッドを通じて指定された名前のプロパティを取得します。次に、GetValue メソッドを使用してプロパティの値を取得し、SetValue メソッドを使用してプロパティの値を設定します。

概要

PropertyInfo クラスは、プロパティ情報の取得と操作に使用される C# の重要なクラスの 1 つです。 PropertyInfo クラスを使用すると、プロパティの名前、タイプ、アクセス権を簡単に取得でき、リフレクション メカニズムを通じてプロパティの値を動的に読み書きできます。実際の開発では、PropertyInfo クラスを柔軟に使用することで、オブジェクトのプロパティをより適切に操作し、プログラミングの効率と柔軟性を向上させることができます。

この記事では、読者に何らかの助けとインスピレーションを提供することを目的として、簡単なサンプル コードを通じて PropertyInfo クラスの使用方法を示します。

以上がC# の PropertyInfo クラスを詳しく見てみるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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