VisualStudio/C#

C#[방법] 리플랙션(Reflection) Class 속성 출력 방법

usingsystem 2022. 10. 11. 15:19
728x90
  class Monster
        {
            public int hp;
            protected int attack;
            private float speed;
        }
        static void Main(string[] args)
        {
            Monster monster = new Monster();
            Type type = typeof(Monster);
            var fields = type.GetFields(System.Reflection.BindingFlags.Public
                  | System.Reflection.BindingFlags.NonPublic
                  | System.Reflection.BindingFlags.Static
                  | System.Reflection.BindingFlags.Instance);

            foreach (FieldInfo field in fields)
            {
                string access = "Protected";
                if (field.IsPublic)
                    access = "public";
                if (field.IsPrivate)
                    access = "private";

                Console.WriteLine($"{access} {field.FieldType.Name} {field.Name}");
            }
        }
728x90