반응형
Reflection(리플렉션) 예제
- 클래스의 모든 필드명 가져오기
- 가져온 필드의 타입 체크하기
- 해당 필드에 값 넣기
//데이터 클래스
class VoData {
public int no;
public string data1;
public string data2;
}
//클래스의 필드들 모두 가져오기
var fields = typeof(VoData).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
//VoData 생성
VoData data = new VoData();
//int, string필드에 값 넣기
for(int i=0; i<fields.Length; i++) {
//int필드 체크
if(fields[i].FieldType == typeof(int)) {
fields[i].SetValue(data, 999);
}
//string필드 체크
else if(fields[i].FieldType == typeof(string)) {
//필드명 체크
if(fields[i].Name == "data1") {
fields[i].SetValue(data, "데이터1");
}
else if(fields[i].Name == "data2") {
fields[i].SetValue(data, "데이터2");
}
}
}
반응형
'윈폼(Winform)' 카테고리의 다른 글
C# 가상키보드 띄운 후 위치, 크기 조정하기 (1) | 2021.12.05 |
---|---|
C# ini 사용하기 (0) | 2021.12.05 |
C# 소수점 반올림, 올림, 버림(Round, Ceiling, Truncate) (0) | 2021.11.20 |
C# 동적 개수의 파라메타(params) 받기 (0) | 2021.11.20 |
C# 비밀번호 체크(영문, 숫자, 특수문자, 길이 체크) (0) | 2021.11.18 |
최근댓글