-----------------------------------------------
В целом, возврат из метода может произойти при двух условиях. Во-первых, когда встречается фигурная скобка, закрывающая тело метода, как показывает пример метода AreaPerPerson()
return
. Имеются две формы оператора return
: одна — для методов типа void
, т.е. тех методов, которые не возвращают значения, а другая — для методов, возвращающих конкретные значения. Первая форма рассматривается в этом разделе, а в следующем разделе будет пояснено, каким образом значения возвращаются из методов.Для немедленного завершения метода типа void
return
.return;
Когда выполняется этот оператор, управление возвращается вызывающей части программы, а оставшийся в методе код пропускается. В качестве примера рассмотрим следующий метод.
public void MyMethO { int i;
for(i=0; i<10; i++) {
if(i == 5) return; // прервать на шаге 5
Console.WriteLine();
}
}
В данном примере выполняется лишь 5 полноценных шагов цикла for
В методе допускается наличие нескольких операторов return
public void MyMethO {
if(done) return;
if (error) return;
}
В данном примере возврат из метода происходит в двух случаях: если метод завершает свою работу или происходит ошибка. Но пользоваться таким приемом программирования следует очень аккуратно. Ведь из-за слишком большого числа точек возврата из метода может нарушиться структура кода.
Итак, напомним еще раз: возврат из метода типа void может произойти при двух условиях: по достижении закрывающей фигурной скобки или при выполнении оператора return.
Методы с возвратом типа void
Math.Sqrt(),
использовавшегося для получения квадратного корня.Возвращаемые значения используются в программировании с самыми разными целями. В одних случаях, как в примере метода Math.Sqrt(),
Для возврата значения из метода в вызывающую часть программы служит следующая форма оператора return
return
где
Используя возвращаемое значение, можно усовершенствовать рассматривавшийся ранее метод AreaPerPerson().
AreaPerPerson(),
возвращающим величину площади на одного человека вместо того, чтобы выводить ее.// Возвратить значение из метода AreaPerPerson().
using System;
class Building {
public int Floors; // количество этажей
public int Area; // общая площадь здания
public int Occupants; // количество жильцов
// Возвратить величину площади на одного человека,
public int AreaPerPerson() {
return Area / Occupants;
}
}
// Использовать значение, возвращаемое методом AreaPerPerson().
class BuildingDemo {
static void Main() {
Building house = new Building();
Building office = new Building();
int areaPP; // площадь на одного человека
// Присвоить значения полям в объекте house,
house.Occupants = 4;
house.Area = 2500;
house.Floors = 2;