Основы языка C# 2005. Евсеева О.Н - 90 стр.

UptoLike

Составители: 

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