Чтение онлайн

на главную - закладки

Жанры

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Для возврата значения из метода в вызывающую часть программы служит следующая форма оператора return:

return значение;

где значение — это конкретное возвращаемое значение.

Используя возвращаемое значение, можно усовершенствовать рассматривавшийся ранее метод AreaPerPerson . Вместо того чтобы выводить величину площади на одного человека, лучше возвратить ее из этого метода. Среди прочих преимуществ такого подхода следует

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

// Возвратить значение из метода AreaPerPerson.

using System;

class Building {

public int Floors; // количество этажей

public int Are-a; // общая площадь здания

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;

// Присвоить значения полям в объекте office, office.Occupants = 25; office.Area = 4200; office.Floors = 3;

// Получить площадь на одного человека в жилом доме. areaPP = house.AreaPerPerson;

Console.WriteLine("Дом имеет:\n " +

house.Floors + " этажа\п " + house.Occupants + " жильца\п " + house.Area +

" кв. футов общей площади, из них\п " + areaPP + " приходится на одного человека");

Console.WriteLine ;

// Получить площадь на одного человека в учреждении. areaPP = office.AreaPerPerson;

Console'. WriteLine ("Учреждение имеет :\n " +

office.Floors + " этажа\п " +

office.Occupants + " работников\п " +

office.Area +

" кв. футов общей площади, из них\п " + areaPP + " приходится на одного человека");

}

}

Эта программа дает такой же результат, как и прежде.

'В данной программе обратите внимание на следующее: когда метод AreaPerPerson вызывается, он указывается в правой части оператора присваивания. А в левой части этого оператора указывается переменная, которой передается значение, возвращаемое методом AreaPerPerson . Следовательно, после выполнения оператора

areaPP = house.AreaPerPerson ;

в переменной areaPP сохраняется величина площади на одного человека в жилом доме (объект house).

Обратите

также внимание на то, что теперь метод
AreaPerPerson имеет возвращаемый тип int. Это означает, что он будет возвращать целое значение вызывающей части программы. Тип, возвращаемый методом, имеет очень большое значение, поскольку тип данных, возвращаемых методом, должен быть совместим с возвращаемым типом, указанным в методе. Так, если метод должен возвращать данные типа double, то в нем следует непременно указать возвращаемый тип double.

Несмотря на то что приведенная выше программа верна, она, тем не менее, написана не совсем эффективно. В частности, в ней можно вполне обойтись без переменной areaPP, указав вызов метода AreaPerPerson непосредственно в операторе, содержащем вызов метода WriteLine , как показано ниже.

Console.WriteLine("Дом имеет:\п " +

house.Floors + " этажа\п " + house.Occupants + " жильца\п " + house.Area +

" кв. футов общей площади, из них\п " + house.AreaPerPerson +

" приходится на одного человека");

В данном случае при выполнении оператора, содержащего вызов метода WriteLine , автоматически вызывается метод house . AreaPerPerson , а возвращаемое им значение передается методу WriteLine. Кроме того, вызов метода AreaPerPerson можно использовать всякий раз, когда требуется получить величину площади на одного человека для конкретного объекта типа Building. Например, в приведенном ниже операторе сравниваются величины площади на одного человека для двух зданий.

if(Ы.AreaPerPerson > Ь2.AreaPerPerson)

Console.WriteLine("В здании Ы больше места для каждого человека");

Использование параметров

При вызове метода ему можно передать одно или несколько значений. Значение, передаваемое методу, называется аргументом. А переменная, получающая аргумент, называется формальным параметром, или просто параметром. Параметры объявляются в скобках после имени метода. Синтаксис объявления параметров такой же, как и у переменных. А областью действия параметров является тело метода. За исключением особых случаев передачи аргументов методу, параметры действуют так же, как и любые другие переменные.

Ниже приведен пример программы, в котором демонстрируется применение параметра. В классе ChkNum используется метод Is Prime , который возвращает значение true, если ему передается значение, являющееся простым числом. В противном случае он возвращает значение false. Следовательно, возвращаемым для метода IsPrimeO является тип bool.

Поделиться:
Популярные книги

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

(Не)зачёт, Дарья Сергеевна!

Рам Янка
8. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
(Не)зачёт, Дарья Сергеевна!

Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Коллектив авторов
Warhammer Fantasy Battles
Фантастика:
фэнтези
5.00
рейтинг книги
Warhammer: Битвы в Мире Фэнтези. Омнибус. Том 2

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

Мы все умрём. Но это не точно

Aris me
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
Мы все умрём. Но это не точно

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Архил...? 4

Кожевников Павел
4. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
5.50
рейтинг книги
Архил...? 4

Город Богов 3

Парсиев Дмитрий
3. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 3

Подари мне крылья. 2 часть

Ских Рина
Любовные романы:
любовно-фантастические романы
5.33
рейтинг книги
Подари мне крылья. 2 часть

Город воров. Дороги Империи

Муравьёв Константин Николаевич
7. Пожиратель
Фантастика:
боевая фантастика
5.43
рейтинг книги
Город воров. Дороги Империи

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Мир Возможностей

Бондаренко Андрей Евгеньевич
1. Мир Возможностей
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Мир Возможностей

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я