Обмен данными между методами
При рассмотрении данного вопроса взаимодействие между методами упрощено – рассматриваем вариант, когда все методы расположены в одном классе.
Существует 3 способа обмена данными:
1. Использование общих полей класса (рассмотренный ранее ва- риант)
2. Обмен данными через параметры методов
3. Возврат данных из метода
Обмен данными через параметры методов
При определении метода указываются параметры, для каждого па- раметра указывается тип и имя. При вызове метода указываются аргу- менты. Значения аргументов будут подставлены вместо параметров (по- парно, слева направо). Аргументом может быть любое выражение, тип которого совпадает с типом параметра или может быть автоматически преобразован к типу параметра.
Виды параметров:
1. Входные (прием данных) – при вызове снимается копия аргумента и передается в метод на место параметра. Метод не имеет возможности изменить аргумент. По умолчанию все параметры считаются входными.
2. Выходные – при вызове в метод передается ссылка на область памяти, где хранится аргумент. Метод обрабатывает данные по этой ссылке, т.е. работает с оригиналом аргумента. Выходные параметры при определении метода и вызове метода должны иметь модификатор out.
3. Входные - выходные – по механизму реализации аналогичны вы- ходным параметрам, но вызывающий метод в обязательном порядке должен определить значение метода. Выходные параметры при опреде- лении метода и вызове метода должны иметь модификатор ref.
При использовании выходных параметров аргумент должен быть именем объекта.
Возврат объекта из метода
При определении метода указывается тип возвращаемого из метода объекта. Возврат значения выполняется оператором return Объект;
Оператор прекращает выполнение метода и производит возврат в точку выова метод и возвращает в вызвавший метод на место вызова – выражение.
Выражение может определить выражение любого типа, т.е. из мето- да можно вернуть:
1. Значение стандартного типа (целые, вещественные и т.д.)
2. Массив
3. Объект определенного класса
Последние два варианта позволяют добиться возврата из метода множества значений.
Пример:
Определить метод, выполняющий сдвиг координат точки на задан- ное расстояние.
class_Example
{
public_static_void_Mov (ref int x, ref int y, int d)
{
x=x+d; y=y+d;
}
public_static_void_Main()
{
int a=4, b=3, d=10; Move (ref a, ref b, d);
}
}
© ООО «Знанио»
С вами с 2009 года.