Внимание. Главное требование при передаче параметров состоит в том, что аргументы при вызове метода должны записываться в том же порядке

Главное требование при передаче параметров состоит в том, что аргументы при вызове метода должны записываться в том же порядке, что и в заголовке метода, и должно существовать неявное преобразование типа каждого аргумента к типу со­ответствующего параметра.

Количество аргументов должно соответствовать количеству параметров. На име­на никаких ограничений не накладывается: имена аргументов могут как совпа­дать, так и не совпадать с именами параметров.

Существуют два способа передачи параметров: по значению и по ссылке.

При передаче по значению метод получает копии значений аргументов, и опера­торы метода работают с этими копиями. Доступа к исходным значениям аргу­ментов у метода нет, а следовательно, нет и возможности их изменить.

При передаче по ссылке (по адресу) метод получает копии адресов аргументов, он осуществляет доступ к ячейкам памяти по этим адресам и может изменять ис­ходные значения аргументов, модифицируя параметры.

В С# для обмена данными между вызывающей и вызываемой функциями преду­смотрено четыре типа параметров:

□ параметры-значения;

□ параметры-ссылки — описываются с помощью ключевого слова ref;

□ выходные параметры — описываются с помощью ключевого слова out;

□ параметры-массивы — описываются с помощью ключевого слова params.

Ключевое слово предшествует описанию типа параметра. Если оно опущено, па­раметр считается параметром-значением. Параметр-массив может быть только один и должен располагаться последним в списке, например:

public int Calculate(int a, ref int b, out int c, params int[] d)...

О параметрах-массивах мы будем говорить позже, в главе 7 (см. с. 154), а сейчас рассмотрим остальные типы параметров.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: