Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.12.2019, 13:52
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Добрый день, возник вопрос. Используется пользовательский элемент управления. В нем есть public-метод,в который я передаю по ссылке экземпляр класса: Код: c# 1. 2. 3. 4.
Вопрос в следующем. Как мне получить из других private-методов пользовательского элемента управления этот экземпляр класса с текущими значениями его свойств? Например: Код: c# 1. 2. 3. 4.
Код на форме с пользовательским элементом управления: Код: c# 1. 2. 3. 4. 5. 6. 7.
Задача в том, что мне нужно в private методе моего элемента управления (MyUserControl) получить актуальное состояние экземпляра класса (например, получить актуальное значение свойства MyProperty). Как это организовать в пользовательском элементе управления? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:00
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
сохранить ссылку на этот объект в полях класса элемента управления. обращаться к объекту по ссылке по мере необходимости Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
но это гонокодище и разберитесь, что такое REF перед тем как её использовать или не используйте ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:02
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Fockewolf Задача в том Если свойство приватное, значит другой тип не должен его получать. В противном случае, делай его публичным или делай специальный метод для его получения. Иначе какой смысл вообще в private/public? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:13
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro, да не вопрос. Но я не придумал, как сделать метод получения инстанса класса произвольного типа откуда либо... По сути, задача сводится к тому, что есть пользовательский элемент, который умеет создавать некие шаблоны настроек и сохранять их. И я должен в него передать инстанс произвольного класса, в котором будут храниться настройки, для дальнейшего сохранения ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:25
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Ну класс Test - он же твой? Что мешает сделать свойство публичным? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:31
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro Ну класс Test - он же твой? Что мешает сделать свойство публичным? Ну у меня публичный, у других - не факт . Я же говорю - будет произвольный класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:38
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Fockewolf Ну у меня публичный, у других - не факт . Я же говорю - будет произвольный класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:43
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro Fockewolf Ну у меня публичный, у других - не факт . Я же говорю - будет произвольный класс. да не в свойстве дело. Я писал - нужно получить актуальное состояние экземпляра класса . Свойство я привел для примера. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 14:47
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Расшифруй слово "состояние" тогда. Обычно под состоянием класса подразумевается значения всех полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 16:46
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro, Я получаю инстанс класса в пользовательский элемент , сериализирую его . Потом что-то делаю на форме с настройками, опять сериализирую. Потом из пользовательского элемента выполняю десериализацию - и возвращаю на форму . Как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 16:51
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Fockewolf сериализирую его ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 16:57
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Fockewolf Shocker.Pro, Я получаю инстанс класса в пользовательский элемент , сериализирую его . Потом что-то делаю на форме с настройками, опять сериализирую. Потом из пользовательского элемента выполняю десериализацию - и возвращаю на форму . Как-то так Если тебе нужно с объектами разных типов делать что-то одинаковое, то для этого существует полиморфизм , который, в случае C#, делается стандартно через виртуальные методы/свойства, либо через интерфейсы. А ты тут вместо этого какие-то половые фантазии развиваешь с какой-то передачей объектов по ссылке. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:13
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:22
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Ну допустим, хотя непонятно, почему всё это приходится вытягивать, как из партизана. А тогда вопрос-то в чём? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:34
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro Ну допустим, хотя непонятно, почему всё это приходится вытягивать, как из партизана. А тогда вопрос-то в чём? Остался вопрос только с десериализацией Как уже было сказано - есть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:45
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Ниоткуда. Обобщенный тип должен быть известен на этапе компиляции. Можно создать объект с заданным типом через рефлексию, потом десериализовать в этот экземпляр. Но это всё говнокод, как неоднократно упомянуто выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:47
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro, Ну ок, как сделать по другому? Для того, чтобы использовать интерфейсы, надо быть уверенным, что классы имплементируют эти интерфейсы. Такой уверенности нет, скорее, наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:50
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Fockewolf Такой уверенности нет, скорее, наоборот. Забудь про <T> - это не твой случай. Получай объект, запоминай его тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:52
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:56
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro Забудь про <T> - это не твой случай. Получай объект, запоминай его тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 17:58
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
вот https://www.newtonsoft.com/JSON/help/html/P_Newtonsoft_Json_JsonSerializerSettings_TypeNameHandling.htm и надо было сразу начать с вопроса о сериализации, нафига было морочить нам голову какими-то приватными свойствами... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 18:23
|
|||
---|---|---|---|
Как получить доступ к экземплру класса |
|||
#18+
Shocker.Pro, Ок, спасибо большое ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.12.2019, 21:54
|
|||
---|---|---|---|
|
|||
Как получить доступ к экземплру класса |
|||
#18+
используйте JObject или XmlElement\XElement ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1398691]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
20ms |
get forum data: |
3ms |
get page messages: |
119ms |
get tp. blocked users: |
1ms |
others: | 250ms |
total: | 566ms |
0 / 0 |