Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > вопрос по методам класса |
Автор: motorway 3.9.2008, 20:15 |
Допустим, есть класс SomeClass с переменными a,b...; И нужно сделать некоторый метод Method () { //делаем что-то с a,b...и, возможно, с другими переменными } Где лучше делать этот метод (как обычно делают в хороших программах) - в самом классе или в основном классе Form1, при этом добавляя параметр с типом этого класса: Method (SomeClass sc)? Тогда можно будет вызывать его из Form1 двумя способами: или obj.Method(), или Method(Someclass obj); Также вопрос: Если в классе есть некий массив, то как лучше делать: создать у класса метод для изменения массива, и далее вызывать из Form1 obj.Method(), или просто сделать obj.Array[num]=value? Вроде проще напрямую изменять массив, чем придумывать методы. Или это все равно как? |
Автор: Angelius 5.9.2008, 12:19 | ||
Вообще-то все зависит от ситуации, иногда лучше одно, а иногда другое, но в большинстве случаев это нужно делать первым способом (т.е. obj.Method()), тем более если в этом методе вы работаете напрямую с переменными, а не со свойствами, которые относятся к этим переменным. Вообще нужно делать так, чтобы при замене класса Someclass в основном классе практически ничего не нужно было менять. А если вы начнете методы всех классов реализовывать в основном классе, то это уже будет свалка, в которой будет трудно что-либо найти! ЗЫ Поправьте если что не так, сам недавно начал программировать ![]() |
Автор: taiven 5.9.2008, 14:00 | ||
Создавай класс, если у тебя есть несколько методов, которые ты можешь сгруппировать. Например, если у тебя есть пара методов Copy() и Paste(), то есть смысл создать для них класс CopyPaste ![]()
Нет никакого смысла создавать метод специально, чтобы просто присвоить одному из элементов массива какое-то значение. Но если у тебя есть какие-то вычисления которые часто повторяются в программе и в которых участвуют элементы массива, то есть смысл создать метод вида Method(<тип> ArrayNum) в котором всё и реализуешь, а потом просто будешь вызывать метод когда это будет необходимо и передавать ему в качестве аргумента элемент массива. |
Автор: sobik 8.9.2008, 21:08 |
Если переменные нужны только локально, то лучше делать метод в классе(ну а сами переменные private), если же они возвращают какие то значения, то лучше внешний метод. А вообще, как было правильно сказано, нужно смотреть по ситуации. Для одного метода целый клас писать не стоит, вопросы быстодействия никто не отменял. |
Автор: Dennnis 11.9.2008, 17:22 | ||||
100% в этом же классе. Так-же в "хороших программах" все переменные классе делают private. А доступ к ним осуществляется через public свойства и методы этого класса.
100% создавать в классе методы для его изменения. |
Автор: QryStaL 11.9.2008, 17:46 |
Не обязательно, можно как вариант использовать индексатор. |
Автор: Dennnis 11.9.2008, 18:00 |
Да индексатор можно, но вот так obj.Array[num]=value точно нельзя... в "правильной программе" ![]() |