Книга: C# для профессионалов. Том II

Параметры методов

Параметры методов

Как и в C++, по умолчанию параметры передаются в методы по значению. Если требуется это изменить, можно использовать ключевое слово ref, указывающее, что параметр передается по ссылке, и out, чтобы указать, что это параметр вывода (всегда передается по ссылке). Если это сделано, то необходимо объявлять этот факт как в определении метода, так и при его вызове.

public void MultiplyByTwo(ref double d, out double square) {
 d *= 2;
 square = d*d;
}
// позже, при вызове метода
double Value, Square Value = 4.0;
MultiplyByTwo(ref Value, out Square);

Передача по ссылке означает, что метод может изменять значение параметра. Передача по ссылке также осуществляется, чтобы улучшить производительность при работе с большими структурами, также как и в C++, передача по ссылке означает, что копируется только адрес. Отметим, однако, что, если при передаче по ссылке из соображений производительности вызываемый метод по-прежнему не изменяет значения параметра, то C# не разрешает присоединять модификатор const к параметрам, как это делает C++.

Параметры типа out действуют по большей части так же, как ссылочные параметры. Но они предназначены для случаев, когда вызываемый метод задает значение для параметра, а не изменяет его. Следовательно, инициализации параметров будут отличаться. C# требует, чтобы параметр ref инициализировался внутри вызываемого метода до своего использования.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.112. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз