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 |