Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 42
1

Использование одних данных по ссылке в разных формах

29.11.2016, 21:36. Показов 1010. Ответов 3
Метки нет (Все метки)

Есть несколько форм - главная и побочные. В главной форме есть несколько полей-классов. При вызове какой-либо побочной формы я создаю экземпляр этой формы и в конструкторе отправляю нужные поля. Дальше в побочной форме делаются какие-то действия с этими данными.
Передаваемые объекты - один null, другой созданный, но пустой внутри (собственная коллекция).

Изначально я считал, что т.к. нужные мне объекты - ссылочного типа, то достаточно будет в побочной форме создать соответствующие поля, в конструкторе присвоить им передаваемые объекты, поработать с ними и они изменятся в главной форме.

Но, видимо, я сильно заблуждался - побочная форма получает данные и работает с ними (создает тот, который был null и заполняет пустой). Однако при возврате в главную форму оказывается, что объекты не изменились.
Как бы мне это исправить и что мне нужно знать, чтобы больше так не промахиваться?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2016, 21:36
Ответы с готовыми решениями:

Использование данных одних переменных в нескольких формах
Всем привет! начал осваивать Visual Studio 2010 с языком Basic, начал писать свою первую...

Использование одних данных из DataSet в нескольких формах
Доброе время суток!! Помогите пожалуйста! Я пишу приложение с использованием DataSet и у меня...

Использование одних и тех же функций для разных форм
Здравствуйте! Есть на данный момент форма название формы сейчас - Model. Но в будущем она будет...

Использование переменной на разных формах
У меня есть одна форма на которой производится запуск двух других, на одной производится расчет...

3
Эксперт .NET
5308 / 4104 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
29.11.2016, 21:46 2
Цитата Сообщение от Мех Посмотреть сообщение
что мне нужно знать
Особенности работы со ссылочными типами.

Добавлено через 1 минуту
Цитата Сообщение от Мех Посмотреть сообщение
Как бы мне это исправить
В главной форме создавать объекты и передавать ссылку на них в побочную. Тогда вы сможете изменить состояние объекта (но не сам объект, то есть ссылку на него).
0
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 42
29.11.2016, 22:00  [ТС] 3
Цитата Сообщение от insite2012 Посмотреть сообщение
создавать объекты и передавать ссылку
Через Ref, как я понимаю? Но в таком случае ничего не изменится - я работаю с объектами вне конструктора.

Цитата Сообщение от insite2012 Посмотреть сообщение
изменить состояние объекта (но не сам объект, то есть ссылку на него)
Поконкретнее можно? Мне нужно проинициализировать отправленный null-объект. Чем будет данная операция считаться в рамках Вашего высказывания?

Добавлено через 6 минут
Nvm, я разобрался. Спасибо.
0
Эксперт .NET
5308 / 4104 / 1183
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
29.11.2016, 22:27 4
Мех, основная суть в том, что без модификаторов любой параметр метода представляет собой копию того значения, что передается - будь это тип значения или ссылка, не важно. То есть, изменяя этот параметр внутри метода (поскольку это копия), снаружи ничего не меняется. Но в случае ссылочных типов есть одна тонкость - сам объект мы изменить не можем (как сказано выше), но вот его состояние - вполне (мы же имеем копию ссылки на тот же самый объект). А для того, чтобы влиять на то, что извне, используются модификаторы out и ref.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2016, 22:27

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Использование одной Com компоненты в 2 разных формах
Есть задача: надо инициализировать COM-компонент в одной форме, а использовать в другой. Т.е. при...

Использование nodes в treeview в разных формах
поясню. Есть главная форма где в treeview используется многоуровневый список на просмотр. И есть...

Использование одних и тех же данных двумя массивами
Всем доброго времени суток. Столкнулся с такой проблемой: у меня есть большой трёхмерный массив и...

передача данных между ListBox в разных формах
Всем доброго дня! Как мне реализовать на нажатие кнопки сравнивание значений в двух листах,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.