В методе допускается наличие нескольких операторовreturn,особенно если имеются два или более вариантов возврата из него. Например:
public void MyMethO {
if(done) return;
if (error) return;
}
В данном примере возврат из метода происходит в двух случаях: если метод завершает свою работу или происходит ошибка. Но пользоваться таким приемом программирования следует очень аккуратно. Ведь из-за слишком большого числа точек возврата из метода может нарушиться структура кода.
Итак, напомним еще раз: возврат из метода типа void может произойти при двух условиях: по достижении закрывающей фигурной скобки или при выполнении оператораreturn.
Возврат значения
Методы с возвратом типа void нередко применяются в программировании, тем не менее, большинство методов возвращает конкретное значение. В действительности способность возвращать значение является одним из самых полезных свойств метода. Возврат значения уже демонстрировался в главе 3 на примере методаMath. Sqrt ,использовавшегося для получения квадратного корня.
Возвращаемые значения используются в программировании с самыми разными целями. В одних случаях, как в примере методаMath.Sqrt (), возвращаемое значение содержит результат некоторого вычисления, в других — оно может просто указывать на успешное или неудачное завершение метода, а в третьих — содержать код состояния. Но независимо от преследуемой цели использование возвращаемых значений является неотъемлемой частью программирования на С#.
Для возврата значения из метода в вызывающую часть программы служит следующая форма оператораreturn:
return
где
Используя возвращаемое значение, можно усовершенствовать рассматривавшийся ранее методAreaPerPerson . Вместо того чтобы выводить величину площади на одного человека, лучше возвратить ее из этого метода. Среди прочих преимуществ такого подхода следует особо отметить возможность использовать возвращаемое значение для выполнения других вычислений. Приведенный ниже пример представляет собой улучшенный вариант рассматривавшейся ранее программы с усовершенствованным методомAreaPerPerson , возвращающим величину площади на одного человека вместо того, чтобы выводить ее.
// Возвратить значение из метода AreaPerPerson.
using System;
class Building {
public int Floors; // количество этажей
public int Are-a; // общая площадь здания
public int Occupants; // количество жильцов
// Возвратить величину площади на одного человека, public int AreaPerPerson {