ВУЗ:
Составители:
Рубрика:
94
статусу аргументов. Если в первом списке n формальных аргументов, то
фактических аргументов должно быть не меньше n (соответствие по числу).
Каждому i-му формальному аргументу (для всех i от 1 до n-1) ставится в
соответствие i-й фактический аргумент. Последнему формальному аргументу,
при условии, что он объявлен с ключевым словом params, ставятся в
соответствие все оставшиеся фактические аргументы (соответствие по
порядку). Если формальный аргумент объявлен с ключевым словом ref или out,
то фактический аргумент должен сопровождаться таким же ключевым словом в
точке вызова (соответствие по статусу).
Если формальный аргумент объявлен с типом T, то выражение, задающее
фактический аргумент, должно быть согласовано по типу с типом T: допускает
преобразование к типу T, совпадает с типом T или является его потомком
(соответствие по типу).
Если формальный аргумент является выходным – объявлен с ключевым
словом ref или out, – то соответствующий фактический аргумент не может быть
выражением, поскольку используется в левой части оператора присваивания;
следовательно, он должен быть именем, которому можно присвоить значение.
Работа с методами класса
Знания формального синтаксиса и семантики недостаточно, чтобы
эффективно работать с методами. Рассмотрим сейчас несколько важных
вопросов, касающихся различных сторон работы с методами класса.
Методы класса имеют значительно меньше аргументов, чем процедуры и
функции в классическом процедурном стиле программирования, когда не
используется концепция классов. Уменьшение количества аргументов
происходит за счёт того, что методы класса – это процедуры, обслуживающие
данные. Все поля доступны любому методу по определению. Нужно четко
понимать, что в момент выполнения программной системы работа идет не с
классом, а с объектами – экземплярами класса. Из полей соответствующего
объекта – цели вызова – извлекается информация, нужная методу в момент
вызова, а работа метода чаще всего сводится к обновлению значений полей
этого объекта. Если в результате работы метода обновляется значение
некоторого поля, то, опять-таки, не нужен никакой выходной аргумент.
Поля хранят информацию о состоянии объектов класса. Состояние
объекта динамически изменяется в ходе вычислений – обновляются значения
полей. Часто возникающая дилемма при проектировании класса: что лучше –
создать ли поле, хранящее информацию, или создать функцию без аргументов,
вычисляющую значение этого поля всякий раз, когда это значение
понадобится. Если предпочесть поле, то это приводит к дополнительным
расходам памяти. Они могут быть значительными, когда создается большое
число объектов – ведь свое поле должен иметь каждый объект. Если
предпочесть функцию, то это потребует временных затрат на вычисление
Страницы
- « первая
- ‹ предыдущая
- …
- 88
- 89
- 90
- 91
- 92
- …
- следующая ›
- последняя »
