![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Мне нужно в форму, перед ее показом, передать массу данных: тип диалога, список сотрудников, их ID, параметры операции (5-7 штук), ...
Варианты решения: 1) Майстрачить конструктор на 10-15 параметров (не охота, криво как то это будет выглядеть). 2) Создать структуру, включающую в себя нужные параметры (мне нравится больше всего). 3) Передать часть функциональности по сбору информации в диалог, что сократит число параметров до 4-6 (но тогда инкапсуляция летит к чертям 4) не учтенный мной метод (т.е. ваш Зарание спасибо. P.S. Принимаются любые мысли, даже бредовые. Это тема -- обсуждение. |
|||
|
||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
По-моему 2) лучше всего
-------------------- ![]() |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Bogdan1024, ага.
Но я стал реализовывать структуру и оказалось, что у нее конструктор будет из того же числа параметров т.е. вместо new dialog(...,...,...,...,...,..,...,..) будет new dialog(new InputData(...,...,...,...,...,..,...,..)) Построчно ингициализировать что ли |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
ИМХО класс (не структура) здесь лучше всего будет - код аккуратнее, да и расширять легче в случае необходимости. Кроме того, проще будет получать измененные данные из диалога в случае необходимости:
Поскольку класс передается по ссылке, то изменяя его свойства в диалоге, можно выдавать их в вызывающий код. Это сообщение отредактировал(а) $tatic - 31.8.2006, 10:22 |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 8 Всего: 15 |
Ну если так. Все равно делать нечего. Вот бредовая идея. Хранить все эти параметры в БД. В родительской форме менять их, а в модальной все что нужно (лэйблы там, текстбоксы) связать с полями БД. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
$tatic, результат от параметров принимать не понадобится. Так что структура возможно будет лучше.
P.S. А за название класса спасибо. Никак не мог придумать нормальное название |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
Да, для больших классов свойства инициализируются построчно. Можно конечно сделать конструктор например из XML-файла или таблицы данных. Но в каждом частном случае это по-своему решается. Тем более, что определять свойства все равно придется.
|
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Naum,
Зачот Добавлено @ 10:23 Нееет, товарищи. Извиняюсь что не пояснил. Параметры динамически меняются. В зависимости от того какая кнопка нажата, на какой строчке в гриде стоит курсор. А часть параметров действительно берется из базы |
|||
|
||||
| $tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
||||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
$tatic, то же правда
Значит лучше класс |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
ivashkanet, и я выскажу свои бредовые мысли :
Это сообщение отредактировал(а) marcusmae - 31.8.2006, 14:02 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
marcusmae, нет, мне не нравиться сам факт передачи 15 параметров конструктору.
P.S. Я, в принципе, уже закодировал п.2 в виде класса P.P.S. Но может кто-то идею класную подкинет |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
А зачем всё конструктором передавать
Добавлено @ 14:35 $tatic, позволь не согласиться. Хотя структура и копируется, но занимает память в стеке и удаляется по выходе из области доступа, в то время как класс порождает много накладных расходов: он занимает память в управляемой куче и удалится только при следующей сборке мусора. Поэтому, здесь разумнее использовать именно структуру. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Помимо всего прочего, структура (или класс) хороша тем, что на неё можно забиндить контролы на форме. А если работа к тому же с БД, то датасеты на то и спроектированы, чтобы их было удобно в формах юзать
-------------------- ![]() |
|||
|
||||
| Killerman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 26.10.2007 Репутация: нет Всего: нет |
А как это сделать? не совсем понял. А основной вопрос у меня такой - из главной формы по нажатию кнопки создаю диалоговое окно, в котором заполняю текстбоксы. чтобы передать из них данные в БД. Значит открываю коннекшн с базой - Connection Opened. А когда вызываю процедуру из базы, или передаю ей текстовую команду - выскакивает ошибка - процедура не найдена. а с текстовым сообщением - то же самое, не нашло таблицу. что за бред. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |