-
Пример 1 демонстрирует определения методов getMessage() и getSum(). Метод getMessage() не принимает параметры и не возвращает значение с помощью оператора return (тип возвращаемого значения void). Метод getSum() имеет два параметра типа int и возвращает помощью оператора return значение типа int.
-
Пример 1 также демонстрирует различные варианты вызова методов.
-
В примере 2 в методы input() и minimum() в качестве параметра передается массив. Массив относится к ссылочным типам данных, имя массива является ссылкой, которая хранит адрес первого элемента массива с индексом 0. В формальный параметр методов input() и minimum() копируется адрес первого элемента массива и методы могут изменять значения элементов массива.
-
В примере 3 метод input() создает массив и возвращает ссылку на него.
-
В примере 4 метод minmax() ищет наилучшее и наихудшее время заплыва спортсменов и возвращает найденное минимальное значение через return, а найденное максимальное значение через дополнительный параметр – объект класса Out. Oбъект класса Out создается в методе main() и передается как параметр в метод minmax(). Найденное максимальное значение записывается в поле val объекта класса Out.
-
В примере 5 для возврата найденного максимального значения используется параметр массив. Найденное максимальное значение записывается в нулевой элемент параметра массива.
-
В примере 6 не удалось обменять значения переменных a и b целого типа, так как в метод swop() эти переменные передаются по значению, то есть метод swop() работает с копиями значений переменных а и b.
-
Для обмена необходимо определить класс, полем которого является переменная типа int (в примере 7 – это класс Ref с полем val), создать объекты этого класса (в примере 7 в методе main создаются объекты a и b ), в поле типа int объектов записать обмениваемые значения и передать объекты в метод swop().
15
Программирование
Тема 3.2 C#. Методы.
Передача параметров
16
С#. Методы. Передача параметров
-
Описание метода:
-
Модификатор доступа Тип_возврата имяМетода (Формальные параметры)
-
{ /* тело метода */ }
-
Варианты вызова метода:
-
имяМетода ([Фактические параметры])
-
имяКласса . имяМетода ([Фактические параметры])
-
имяОбъекта . имяМетода ([Фактические параметры])
-
Способы передачи параметров:
-
по значению;
-
по ссылке .
-
Разновидности формальных и фактических параметров:
-
входные параметры (параметры – значения);
-
выходные параметры (объявляются с ключевым словом out);
-
ссылочные параметры (объявляются с ключевым словом ref).
17
С#. Методы. Передача параметров
-
В С# существует два способа передачи параметров: по значению и по ссылке.
-
При передаче параметров по значению - значения фактических параметров копируются в соответствующие формальные параметры. Изменение формального параметра не влияет на значение фактического параметра. При передаче объектов копируется ссылка (адрес объекта). После такого копирования, и фактический параметр, и формальный параметр, ссылаются на один и тот же объект. В этом случае сам объект мы можем изменить, а ссылку на него (адрес объекта) – нет.
-
При передаче параметров по ссылке - адреса фактических параметров копируются в соответствующие формальные параметры и по этим адресам есть доступ к значениям фактических параметров и их можно изменить.
-
В С# передача параметров по ссылке реализуется с помощью ссылочных параметров (ref – параметров) и выходных параметров (out – параметров).
-
Разница между ref и out в том, что переменную, переданную через out вы обязаны проинициализировать в методе, куда она передается.
18
C#. Методы. Передача параметров
-
Пример 8. Параметры-значения
19
C#. Методы. Передача параметров
-
Пример 9. Параметры - ссылки
20
C#. Методы. Передача параметров
-
Пример 10. Массив в качестве параметра и возвращаемого значения
21
C#. Методы. Передача параметров
-
Пример 10. Массив в качестве параметра и возвращаемого значения
22
С#. Методы. Передача параметров
-
Пример 11. Возврат двух значений из метода. Выходные параметры
23
C#. Методы. Передача параметров
-
Пример 11. Возврат двух значений из метода. Выходные параметры
24
Контрольные вопросы
-
Методы в Java : общее определение метода, варианты вызова метода, способы передачи параметров в метод, примеры.
-
Методы в С#: общее определение метода, варианты вызова метода, способы передачи параметров в метод, примеры.
25