rn.log

備忘録など

【C#】static変数やstaticプロパティの値を一括取得する

こう書くとpublicなstaticプロパティの値を一括取得できる。

Type type = typeof(SomeClass);
foreach (PropertyInfo pi in type.GetProperties())
{
    Debug.Log("property : " + pi.GetValue(null, null));
}


publicなstatic変数の値を取得したい場合はこう書く

Type type = typeof(SomeClass);
foreach (FieldInfo fi in type.GetFields())
{
    Debug.Log("field : " + fi.GetValue(null));
}

privateなものも取得したい場合はGetMembersを使うと良い

Type type = typeof(SomeClass);
var members = type.GetMembers(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);

foreach (var member in members)
{
    if (member.MemberType == MemberTypes.Property)
    {
        var property = (PropertyInfo)member;
        Debug.Log("property : " + property.GetValue(null, null));
    }

    if (member.MemberType == MemberTypes.Field)
    {
        var field = (FieldInfo)member;
        Debug.Log("field : " + field.GetValue(null));
    }
}