c# 리플렉션

lkh의 이미지

리플렉션은 public으로 된것들만 알아낼 수 있나요?

inviolable의 이미지

직접 테스트해본 결과

using System;
using System.Reflection;
 
namespace _111
{
    class A
    {
        private int hour;
        public int min, sec;
        protected int day;
 
        public A(int d,int h, int m, int s)
        {
            day = d;
            hour = h;
            min = m;
            sec = s;
        }
 
        public void OutTime()
        {
            Console.WriteLine("현재 시간은 {0}시 {1}분 {2}초이다. {3}일이고", hour, min, sec,day);
        }
    }
}
 
class B
{
    static void Main()
    {
        _111.A Now = new _111.A(1, 2, 3,4);
 
        Type TimeType = Now.GetType();
 
        FieldInfo[] TimeField = TimeType.GetFields();
 
        for (int i = 0; i < TimeField.Length; i++)
        {
            Console.WriteLine("{0}번째 필드 = {1}", i, TimeField[i].Name);
        }
    }
}

결과

0번째 필드 = min
1번째 필드 = sec

public필드만 냐오는 군요.