Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по методам класса 
:(
    Опции темы
motorway
Дата 3.9.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Angelius
Дата 5.9.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 30.8.2008
Где: Местный я!

Репутация: нет
Всего: нет



Цитата

Тогда можно будет вызывать его из Form1 двумя способами: или obj.Method(), или Method(Someclass obj);

Вообще-то все зависит от ситуации, иногда лучше одно, а иногда другое, но в большинстве случаев это нужно делать первым способом (т.е. obj.Method()), тем более если в этом методе вы работаете напрямую с переменными, а не со свойствами, которые относятся к этим переменным.
 Вообще нужно делать так, чтобы при замене класса Someclass в основном классе практически ничего не нужно было менять. А если вы начнете методы всех классов реализовывать в основном классе, то это уже будет свалка, в которой будет трудно что-либо найти!

ЗЫ Поправьте если что не так, сам недавно начал программировать smile 
PM MAIL ICQ   Вверх
taiven
Дата 5.9.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 30.6.2008

Репутация: нет
Всего: 9



Создавай класс, если у тебя есть несколько методов, которые ты можешь сгруппировать. Например, если у тебя есть пара методов Copy() и Paste(), то есть смысл создать для них класс CopyPaste smile 
Цитата

Если в классе есть некий массив, то как лучше делать: создать у класса метод для изменения массива, и далее вызывать из Form1 obj.Method(), или просто сделать obj.Array[num]=value?

Нет никакого смысла создавать метод специально, чтобы просто присвоить одному из элементов массива какое-то значение. Но если у тебя есть какие-то вычисления которые часто повторяются в программе и в которых участвуют элементы массива, то есть смысл создать метод вида Method(<тип> ArrayNum) в котором всё и реализуешь, а потом просто будешь вызывать метод когда это будет необходимо и передавать ему в качестве аргумента элемент массива.
PM   Вверх
Reaf
Дата 8.9.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.11.2006
Где: Москва

Репутация: нет
Всего: нет



Цитата(motorway @  3.9.2008,  20:15 Найти цитируемый пост)
Где лучше делать этот метод (как обычно делают в хороших программах) - в самом классе или в основном классе Form1, при этом добавляя параметр с типом этого класса: Method (SomeClass sc)?

Если метод связан с интерфейсом и в других формах вряд ли будет применяться - то  в классе данной формы.
В других случаях - лучше создавать "ядро"
PM MAIL ICQ MSN   Вверх
sobik
Дата 8.9.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

Репутация: 1
Всего: 1



Если переменные нужны только локально, то лучше делать метод в классе(ну а сами переменные private), если же они возвращают какие то значения, то лучше внешний метод. А вообще, как было правильно сказано, нужно смотреть по ситуации. Для одного метода целый клас писать не стоит, вопросы быстодействия никто не отменял.
PM MAIL   Вверх
Dennnis
Дата 11.9.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 23.3.2008

Репутация: 1
Всего: 4



Цитата(motorway @  3.9.2008,  20:15 Найти цитируемый пост)
Допустим, есть класс SomeClass с переменными a,b...;

И нужно сделать некоторый метод Method ()
{
//делаем что-то с a,b...и, возможно, с другими переменными

}

Где лучше делать этот метод (как обычно делают в хороших программах) - в самом классе или в основном классе Form1, при этом добавляя параметр с типом этого класса: Method (SomeClass sc)?
Тогда можно будет вызывать его из Form1 двумя способами: или obj.Method(), или Method(Someclass obj);

100% в этом же классе. Так-же в "хороших программах" все переменные классе делают private. А доступ к ним осуществляется через public свойства и методы этого класса.

Цитата(motorway @  3.9.2008,  20:15 Найти цитируемый пост)
Также вопрос:
Если в классе есть некий массив, то как лучше делать: создать у класса метод для изменения массива, и далее вызывать из Form1 obj.Method(), или просто сделать obj.Array[num]=value?

100% создавать в классе методы для его изменения.
--------------------
Get Rich or Die Tryin'
PM   Вверх
QryStaL
Дата 11.9.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32



Цитата(Dennnis @  11.9.2008,  17:22 Найти цитируемый пост)
100% создавать в классе методы для его изменения.

Не обязательно, можно как вариант использовать индексатор.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Dennnis
Дата 11.9.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 23.3.2008

Репутация: 1
Всего: 4



Да индексатор можно, но вот так obj.Array[num]=value точно нельзя... в "правильной программе" smile 
--------------------
Get Rich or Die Tryin'
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1218 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.