![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Допустим, есть класс SomeClass с переменными a,b...;
И нужно сделать некоторый метод Method () { //делаем что-то с a,b...и, возможно, с другими переменными } Где лучше делать этот метод (как обычно делают в хороших программах) - в самом классе или в основном классе Form1, при этом добавляя параметр с типом этого класса: Method (SomeClass sc)? Тогда можно будет вызывать его из Form1 двумя способами: или obj.Method(), или Method(Someclass obj); Также вопрос: Если в классе есть некий массив, то как лучше делать: создать у класса метод для изменения массива, и далее вызывать из Form1 obj.Method(), или просто сделать obj.Array[num]=value? Вроде проще напрямую изменять массив, чем придумывать методы. Или это все равно как? Это сообщение отредактировал(а) motorway - 3.9.2008, 20:16 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Angelius |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 30.8.2008 Где: Местный я! Репутация: нет Всего: нет |
Вообще-то все зависит от ситуации, иногда лучше одно, а иногда другое, но в большинстве случаев это нужно делать первым способом (т.е. obj.Method()), тем более если в этом методе вы работаете напрямую с переменными, а не со свойствами, которые относятся к этим переменным. Вообще нужно делать так, чтобы при замене класса Someclass в основном классе практически ничего не нужно было менять. А если вы начнете методы всех классов реализовывать в основном классе, то это уже будет свалка, в которой будет трудно что-либо найти! ЗЫ Поправьте если что не так, сам недавно начал программировать ![]() |
|||
|
||||
taiven |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 302 Регистрация: 30.6.2008 Репутация: нет Всего: 9 |
Создавай класс, если у тебя есть несколько методов, которые ты можешь сгруппировать. Например, если у тебя есть пара методов Copy() и Paste(), то есть смысл создать для них класс CopyPaste
![]()
Нет никакого смысла создавать метод специально, чтобы просто присвоить одному из элементов массива какое-то значение. Но если у тебя есть какие-то вычисления которые часто повторяются в программе и в которых участвуют элементы массива, то есть смысл создать метод вида Method(<тип> ArrayNum) в котором всё и реализуешь, а потом просто будешь вызывать метод когда это будет необходимо и передавать ему в качестве аргумента элемент массива. |
|||
|
||||
Reaf |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 28.11.2006 Где: Москва Репутация: нет Всего: нет |
Если метод связан с интерфейсом и в других формах вряд ли будет применяться - то в классе данной формы. В других случаях - лучше создавать "ядро" |
|||
|
||||
sobik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.3.2008 Где: Киев, Украина. Репутация: 1 Всего: 1 |
Если переменные нужны только локально, то лучше делать метод в классе(ну а сами переменные private), если же они возвращают какие то значения, то лучше внешний метод. А вообще, как было правильно сказано, нужно смотреть по ситуации. Для одного метода целый клас писать не стоит, вопросы быстодействия никто не отменял.
|
|||
|
||||
Dennnis |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 23.3.2008 Репутация: 1 Всего: 4 |
100% в этом же классе. Так-же в "хороших программах" все переменные классе делают private. А доступ к ним осуществляется через public свойства и методы этого класса. 100% создавать в классе методы для его изменения. --------------------
Get Rich or Die Tryin' |
|||
|
||||
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 10 Всего: 32 |
Не обязательно, можно как вариант использовать индексатор. -------------------- I don't need a reason being who I am... |
|||
|
||||
Dennnis |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 23.3.2008 Репутация: 1 Всего: 4 |
Да индексатор можно, но вот так obj.Array[num]=value точно нельзя... в "правильной программе"
![]() --------------------
Get Rich or Die Tryin' |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |