Параметры-значения
При передаче по ссылке ( по адресу ) метод получает копии адресов аргументов, он осуществляет доступ к ячейкам памяти по этим адресам и может изменять исходные значения аргументов, модифицируя параметры.
При передаче по значению метод получает копии значений аргументов, и операторы метода работают с этими копиями. Доступа к исходным значениям аргументов у метода нет, а, следовательно, нет и возможности их изменить.
Существуют два способа передачи параметров: по значению и по ссылке.
Способы передачи параметров
В C# для обмена данными между вызывающей и вызываемой функциями предусмотрено четыре типа параметров:
- параметры-значения;
- параметры-ссылки — описываются с помощью ключевого слова ref ;
- выходные параметры — описываются с помощью ключевого слова out ;
- параметры-массивы — описываются с помощью ключевого слова params.
Ключевое слово предшествует описанию типа параметра. Если оно опущено, параметр считается параметром-значением. Параметр-массив может быть только один и должен располагаться последним в списке, например:
public int Calculate( int a, ref int b, out int c, params int[] d ) …Параметр-значение описывается в заголовке метода следующим образом:
тип имяПример заголовка метода, имеющего один параметр-значение целого типа:
void P( int x )