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