![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
cg_ck |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
Вопрос следующий: Видимо в моём примере в b.Size передалась копия объекта. И при изменении s.Width в b.Size.Width ничего не изменилось. Это потому, что Size - структура? Есть возможность что бы s передалось как адрес, а не как новый объект? |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 2 Всего: 25 |
думаю, это произошло потому, что в свойстве Size у Button не "забирается" адрес s, а лишь копируется его Width и Heigth.
Делается это потому, что при изменении размеров кнопки нужно еще пересчитывать множество параметров (Right, Bottom и т.д.) ЗЫ. Это догадки. Узнать как оно взаправду делается - нужны исходники кнопки Это сообщение отредактировал(а) Alek86 - 23.9.2007, 11:16 |
|||
|
||||
zaver |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
потому что Size - это структура, а структуры передаются по значению, а не по ссылке.
|
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Да, потому что Size - структура. Напрямую структры нельзя никак переписать по адресу - таким образом ты можешь нарушить контекст выполнения (ведь структуры хранятся в стеке).
Изменяя обертку-класс s2 ты изменяешь и s1 - так как класс - ссылочный тип Понятно что не создавая свою кнопку ты не присобачишь в нее класс-обертку. Проще перебрать по циклу кнопочки Это сообщение отредактировал(а) archeg - 23.9.2007, 13:09 -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |