728x90
class Program
    {
        class Player
        {
            public int hp;
            public int attack;
            public int defense;

            void Move() { }
        }

        static void Main(string[] args)
        {
            Player player = new Player();
            Type type = player.GetType();

            string name = type.Name; // 클래스 이름 추출
            FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance); // 필드 추출
            foreach(FieldInfo fieldInfo in fieldInfos)
            {
                if(fieldInfo.IsPublic)
                    Console.WriteLine($"public {fieldInfo.FieldType.Name} {fieldInfo.Name}");
                else if(fieldInfo.IsPrivate)
                    Console.WriteLine($"private {fieldInfo.FieldType.Name} {fieldInfo.Name}");
                else
                    Console.WriteLine($"protected {fieldInfo.FieldType.Name} {fieldInfo.Name}");
            }
        }
    }
 
 

C#에서의 리플렉션 기능을 사용하면 클래스 이름, 접근 지정자, 형식, 이름, 초기값 등 여러가지 정보를 전부 추출할 수 있다. 클래스 뿐만 아니라 struct나 enum도 마찬가지!

 

728x90

'C# > C# 기본' 카테고리의 다른 글

async/await  (0) 2024.08.06
Extension  (0) 2023.05.16
Predicate  (0) 2023.05.16
Property(Getter, Setter)  (0) 2023.05.16
Delegate  (1) 2023.05.16

+ Recent posts