C#のオブジェクトで定義されているプロパティの一覧を取得する。

C# コンピュータ
C#

クラスのオブジェクトからプロパティ名を取得してみます。
サンプルプログラム

class MyClassA
{
    public string Name { get; set; } = "";
    public int Value {get; set; } = 0;
}
class Program
{
    static void Main()
    {
        // オブジェクトのプロパティ名の一覧を取得
        
        var obj = new MyClassA()
        {
            Name = "JIM",
            Value = 16,
        };

         Type type = obj.GetType();
         foreach (var p in type.GetProperties())
         {
            Console.WriteLine($"名前:{p.Name} CanRead:{p.CanRead} CanWrite:{p.CanWrite} MemberType:{p.MemberType} {p.GetValue(obj)}");
         }
    }
}

結果

名前:Name CanRead:True CanWrite:True MemberType:Property JIM
名前:Value CanRead:True CanWrite:True MemberType:Property 16

GetValue()で値を取得出来るようなので、値も取得しました。
また、プロパティのsetを定義しないと、CanWriteがfalseになりました。

コメント