![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
-ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
Как правильно вызвать функцию(метод) одного класса/формы (Form1) из метода другого класса/формы (Form2). А именно, через Form1 я открыл Form2 а теперь по нажатию кнопки на Form2 я хочу что-то сделать в моей открытой Form1. Как установить ссылку обекта на instance другого обекта.
-------------------- "Тонкая, однако, работа." |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 9 Всего: 172 |
Приведи код где ты делаешь и показываешь Form2.
-------------------- |
|||
|
||||
-ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
-------------------- "Тонкая, однако, работа." |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 9 Всего: 172 |
Дык вместо
пиши
если это происходит в Form1. -------------------- |
||||
|
|||||
-ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
спасибо, то что надо.
-------------------- "Тонкая, однако, работа." |
|||
|
||||
RedButterfly |
|
|||
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
Поднимаю тему.
Вопрос тот же самый: как вызвать метода одного класса из другого? оба класса типа Public (и из одного namespace - если это имеет значение...) например
возможно ли это вообще ? ведь они не являются предок-наследник... помогите пожалуйста ... а то мозги скоро потекут из ушей... ![]() |
|||
|
||||
informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
если только обявить этот метод как static и он будет оступен как First.Count() но тогда если создать экземпляр класса, то у экземпляра этого метода небудет... Может есть другое решение данной проблемы, что ты именно хочешь сделать?? Какую функциональность реализовать? --------------------
namespace informatik |
|||
|
||||
QryStaL |
|
||||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
подробнее про это ограничение. Надо вызвать метод уже существующего объекта?
У экземпляра не будет, но достучаться к нему через экземпляр можно будет. -------------------- I don't need a reason being who I am... |
||||
|
|||||
RedButterfly |
|
||||
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
в классе First метод Count считает количество проектов в базе... а в классе Second в методе Load мне нужно создать массив...коллекцию...в-общем список этих самых проектов...и перед тем как "Загрузить" проверить - загружался ли этот проект, и если загружался - то есть есть в списке загруженных , то не создавать его (не делать *** +++ = new ***) а вернуть уже созданный проект....то есть уже созданный экземпляр класса Second поэтому мне нужно количество проектов, то есть метод Count = для определения размера массива.... ![]() попутно вопрос вернуть уже созданный проект....то есть уже созданный экземпляр класса Second вот это вообще реализуемо?...что-то мне кажется, что нет.... задачу объясняет программист-дельфист.... |
||||
|
|||||
informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Дабы незагружать уже загруженные экземпляры есть такой способ.... Пусть бут некий слой данных который обеспечивает функциональность по работе с базой и созданию экземпляров нужных классов, дак вот при создании экземпляров класса помещать ссылки на них в какой нить массив (благо в NET 2.0 есть для этого все средства). Далее при обращении снова к этому слою данных за Проектом с определенным ID слой данных (тоже некий класс или совокупность классов) проверяет а был ли загружен уже данный экземпляр и возвращет его не обращаясь к базе... Добавлено через 1 минуту и 23 секунды Т.е. задача решается при правильном проектировании классов, именно на это я хотел обратить внимание.. --------------------
namespace informatik |
|||
|
||||
RedButterfly |
|
||||||
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
Надо вызвать метод уже существующего объекта? Ответ: нет даже есть сделать так:
оказывается нет.... ![]() Добавлено через 5 минут и 47 секунд
Что под этим следует понимать: слой данных в первом и втором случае? и вот это: возвращет его не обращаясь к базе... чтобы вернуть новый экземпляр класса, нужно сделать new First название_экземпляра а чтобы вернуть существующий что нужно сделать? там получается массив...эээ...классов чтоли...? что-то я запуталась :( |
||||||
|
|||||||
informatik |
|
||||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Его нужно для начала гдето сохранить чтобы иметь к нему доступ...
Именно так. Добавлено @ 15:44 Ведь чтобы вернуть уже созданный экземпляр его надо гдето хранить... а иначе если на него небудет ссылок он будет уничтожен сборщиком мусора... Добавлено @ 15:47
Класс или совокупность классов содержащих функционал для доступа к данным..т.е. обращение к базе ну и можно сюда же припахать создание экземпляров классов на основе данных БД.... Добавлено через 8 минут и 3 секунды
т.е. как это неполучается.... что за бред... этот код просто идеален ![]() Добавлено через 9 минут и 10 секунд Что ты подразумеваешь под 'неполучается' ?? Что происходит то?? Какая то ошибка?? Это сообщение отредактировал(а) informatik - 16.9.2008, 15:49 --------------------
namespace informatik |
||||||||||
|
|||||||||||
RedButterfly |
|
||||
Учусь ![]() Профиль Группа: Участник Сообщений: 132 Регистрация: 4.7.2005 Где: Уфа->Москва Репутация: нет Всего: нет |
да смотрела смотрела и поняла....пардон, ещё раз пардон, но вот тут
ошибка моя ясна. ох чую я, что классы построены не совсем правильно... уважаемые, есть какие-нибудь "пособия" по правильному построению классов? а то ведь ненормально это когда вызываешь метод другого класса, который лезет в ещё один метод того же класса... |
||||
|
|||||
informatik |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: нет Всего: 6 |
Абсолютно обычная ситуация... ![]()
Набери в гугле ООП, или Принципы объектно-ориентированного программирования.. и т.д.. Можешь зати на INTUIT.ru там много курсов и по ООП и конкретно его применение в C#. --------------------
namespace informatik |
||||
|
|||||
Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
надо либо
либо
второй вариант предпочтительнее Это сообщение отредактировал(а) Mayk - 17.9.2008, 07:45 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [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. |