![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| mrHunter |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 23.7.2007 Репутация: нет Всего: нет |
Есть Класс1 в нем производятся предварительные вычисления и заполняются 5 массивов с параметрами. (Массивы заполняются именно в этом классе).
Эти 5 массивов активно используются в Классе2. Так вот вопрос, как наиболее правильно с точки зрения стиля программирования и оптимально передать эти массивы в Класс2? Можно, конечно объявить их в классе2 как public, но это наверное не есть гуд, т.к. плохой стиль программирования. Создать свойства тоже конечно можно, но в случае массивов я не знаю, правильно ли это? Читал про индексаторы... Я понял как сделать 1 индексатор в классе, а как их сделать 5 шт? Подскажите пожалуйста. |
|||
|
||||
| -Mikle- |
|
||||||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Все зависит от задачи, и как массивы используются. Вообще частая ошибка, это излишнее деление кода на классы. Делить конечно надо, но разумно. Просто у меня возникло такое замечание из-за того, что массивы заполняются в одном классе, а используются в другом. Как то смущает меня немного это... Зотя может для решения твоей задачи именно так и нужно... Ок, по сути вопроса...
А почему нет? Нет ничего плохого в том, что свойство будет иметь тип массив строк, например. Это абсолютно нормально.
Если допустимо в твоей задаче (я не знаю логики взаимодействия между классами в твоей задаче), то можно в Класс2 передавать ссылку на Класс1. Если не допустимо, то, возможно, тебе будет удобнее вынести эти пять массивов в отдельный класс и использовать его в Класс1 и в Класс2. Это даст большую гибкость в будущем расширении взаимодействия между Класс1 и Класс2. Еще раз повотрюсь, "красивое" решение зависит от конкретной задачи в целом. Добавлено через 2 минуты и 22 секунды
5-ть не сделаешь никак. Только одно разумеется. -------------------- Если тебе плюют в спину, значит ты впереди... |
||||||||
|
|||||||||
| mrHunter |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 23.7.2007 Репутация: нет Всего: нет |
Спасибо, -Mikle-!
Массивы заполняются в Классе1, т.к. это класс - форма приложения. А в Классе2 содержатся общие для всей программы поля и методы. Насчет свойств: И в Классе1 и в Классе2 надо создавать
В Классе2 надо создать свойство: public static Array1 { set { array1 = value; } } В Классе1 после заполнения массива:
Меня просто смущает, что так много кода... |
||||
|
|||||
| -Mikle- |
|
||||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
ясно теперь. Кода не много. Вот так будет нормально:
а в форме писать:
-------------------- Если тебе плюют в спину, значит ты впереди... |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |