ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Передача параметров методу. Параметры-значения. Параметры-ссылки. Примеры использования.Параметры методов При вызове метода выполняются следующие действия: 1. Вычисляются выражения, стоящие на месте аргументов. 2. Выделяется память под параметры метода в соответствии с их типом. 3. Каждому из параметров сопоставляется соответствующий аргумент. 4. Выполняется тело метода. 5. Если метод возвращает значение, оно передается в точку вызова; если метод имеет тип void, управление передается на оператор, следующий после вызова. При этом проверяется соответствие типов аргументов и параметров и при необходимости выполняется их преобразование. При несоответствии типов выдается диагностическое сообщение. Существуют два способа передачи параметров: по значению и по ссылке. При передаче по значению метод получает копии значений аргументов, и операторы метода работают с этими копиями. Доступа к исходным значениям аргументов у метода нет, а, следовательно, нет и возможности их изменить. При передаче по ссылке (по адресу) метод получает копии адресов аргументов, он осуществляет доступ к ячейкам памяти по этим адресам и может изменять исходные значения аргументов, модифицируя параметры. В С# для обмена данными между вызывающей и вызываемой функциями предусмотрено четыре типа параметров: - параметры-значения; - параметры-ссылки — описываются с помощью ключевого слова ref; - выходные параметры — описываются с помощью ключевого слова оut; - параметры-массивы — описываются с помощью ключевого слова рarams. Ключевое слово предшествует описанию типа параметра. Если оно опущено, параметр считается параметром-значением. Параметр-массив может быть только один и должен располагаться последним в списке. Листинг 2- Передача параметров методу using System; namespace ConsoleApplication1 { class Class1 { static int Max(int a, out int b) / / метод выбора максимального значения { if (а > b) return а; еlse return b; } static void Main() { int a = 2, b = 4; int x = Мах(а, b); / / вызов метода Мах Соnsole.WriteLine(х); / / результат: 4 short t1 = 3, t2 = 4; int у = Мах(t1, t2); / / вызов метода Мах Соnsole.WriteLinе(у); / / результат: 4
int z = Мах(а + t1, t1 / 2 * b); / / вызов метода Мах Соnsole.WriteLine(z); / / результат: 5 } } } В классе описан метод Мах, который выбирает наибольшее из двух переданных ему значений. Параметры описаны как а и b. В методе Main выполняются три вызова Мах. В результате первого вызова методу Мах передаются два аргумента того же типа, что и параметры, во втором вызове — аргументы совместимого типа, в третьем — выражения. Главное требование при передаче параметров состоит в том, что аргументы при вызове метода должны записываться в том же порядке, что и параметры в заголовке метода. Правила соответствия типов аргументов и параметров описаны в следующих разделах. Количество аргументов должно соответствовать количеству параметров. На имена никаких ограничений не накладывается: имена аргументов могут как совпадать, так и не совпадать с именами параметров. Не нашли, что искали? Воспользуйтесь поиском:
|