![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| constant |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Хочу я иметь доступ к приватному члену класса. Зачем это надо - за рамками данной темы и не обсуждается.
Вот упрощенный код класса:
Хочу я значит получить доступ к списку m_Params. Пробовал это сделать через Reflection вот так:
В этом случае да, получаю я переменную типа object и даже элементы списка вижу в отладчике. Но вот вопрос, как это использовать дальше в программе ? Т.е. как элементы списка типа objVar[i], например. Как преобразовать к нужному типу не знаю. Или может быть как-то по-другому к такому приватному члену класса можно доступ поиметь ? |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
вы получили FieldInfo, у него есть GetValueDirect() и SetValueDirect()
|
|||
|
||||
| constant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Спасибо огромное за ответ ! Не могли бы вы мне, тупому, привести код, в котором показано как конкретно в моем случае вытащить значение с помощью GetValueDirect(). Пока не могу понять. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
Это сообщение отредактировал(а) baldina - 11.7.2014, 13:23 |
|||
|
||||
| constant |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Хорошо. Вопрос теперь, как мне использовать эту переменную типа object. Ведь вот так делать нельзя:
Как мне получить доступ к элементам списка ? |
||||||
|
|||||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
constant, понятно в чем проблема. не нужен тут GetValueDirect, а нужно отрефлексировать всю работу с objVar, тем более что Param - закрытый тип
будет что-то типа
Добавлено @ 14:31 это всего лишь вызов метода Add(new Param(3,4)) Добавлено @ 14:37 если бы struct Param был public, было бы достаточно
Это сообщение отредактировал(а) baldina - 11.7.2014, 14:38 |
||||
|
|||||
| constant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Преогромнейшее спасибо. Отлично, теперь добавление работает.
Вот только с ЧТЕНИЕМ проблема. Как считывать элементы Param из списка, и использовать их значение. Как ни пытаюсь, на выходе получается переменная типа object, которая не приводится к необходимым типам, и использовать ее в программе нельзя. Помогите пожалуйста ! |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
|
|||
|
||||
| constant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
И еще раз преогроменнейшее спасибо, теперь проблема полностью решена. Вы офигенный программист, baldina.
Очень жалко, что, пока не могу поставить Вам плюс из-за недостаточного количества постов у меня. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
я лишь прочитал мануал по reflection, и только...
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |