C#でクラスのフィールド名と値を取得する

C#

後輩にクラスからフィールド名と値ってどうやってとれるんですか?と聞かれたのでサンプルを書きました。

スポンサーリンク

クラス

例えばこんなクラスがあったとします。

public static class Orange
{
    public const int Id = 1;
    public const string Name = "Orange";
    public const int Price = 100;
}

フィールド名と値を取得する

このクラスからフィールド名と値をリフレクションで取得します。

public class Program
{
    static void Main(string[] args)
    {
        var t = typeof(Orange);
        foreach (var f in t.GetFields())
        {
            var n = f.Name;
            var v = f.GetValue(t);
            Console.WriteLine(string.Format("フィールド名: {0}, 値: {1}", n, v));
        }
        Console.ReadLine();
    }
}

Visual Studio で適当にコンソールアプリ作って実行するとこんな感じに表示されます。

フィールド名: Id, 値: 1
フィールド名: Name, 値: Orange
フィールド名: Price, 値: 100

関連情報

C# や ASP.NET に関連する記事を以下にまとめています。

テレワークしている方には以下の記事がおすすめです。
私のお気に入りは REALFORCE と R&F BELX のルイボスティーです。

エンジニア初心者向けに本当に使えるツールを紹介しています。
特に Notion はタスク管理に本当に便利です。

タイトルとURLをコピーしました