#c_sharp #рефлексия
Есть экземпляр класса Class1, каким образом можно получить его aValue поле? Вопрос крайне глупый, понимаю... и все же. Получается получить только статические поля, а для экземпляров как быть? public class Class1{ private int aValue; public Class1(int a){ this.aValue = a; } } Class1 cls = new Class1(10);
Ответы
Ответ 1
Нужно указать маску: Class1 cls = new Class1(10); FieldInfo fieldInfo = typeof(Class1).GetField("aValue", BindingFlags.Instance | BindingFlags.NonPublic); int a = (int)fieldInfo.GetValue(cls);Ответ 2
Один из принципов ООП - Инкапсуляция, означает что доступ к "некоторым" свойствам класса возможен только "внутри капсулы" из метода класса; Напиши метод public int GetValue() {return aValue}
Комментариев нет:
Отправить комментарий