Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Использование методов в программе
Определив методы, мы можем использовать их в программе. Чтобы вызвать метод в программе, надо указать имя метода, а после него в скобках значения для его параметров::
Здесь определены два метода. Первый метод Hello возвращает значение типа string. Поэтому мы можем присвоить это значение какой-нибудь переменной типа string: string message = Hello(); Второй метод - процедура Sum - просто складывает два числа и выводит результат на консоль. Параметры методов Последнее обновление: 09.03.2017 В предыдущей теме мы использовали методы без параметров. Теперь посмотрим, как применяются параметры. Параметры представляют собой переменные, которые определяются в сигнатуре метода и создаются при его вызове. Существует два способа передачи параметров в метод в языке C#: по значению и по ссылке. Наиболее простой способ передачи параметров представляет передача по значению:
И при вызове этого метода в программе нам обязательно надо передать на место параметров значения, которые соответствуют типу параметра. Данные значения еще называют аргументами:
Передача параметров по ссылке и модификатор ref При передаче параметров по ссылке перед параметрами используется модификатор ref:
В чем отличие двух способов передачи параметров? При передаче по значению метод получает не саму переменную, а ее копию. А при передаче параметра по ссылке метод получает адрес переменной в памяти. И, таким образом, если в методе изменяется значение параметра, передаваемого по ссылке, то также изменяется и значение переменной, которая передается на его место. Например:
Здесь в методе Main у нас есть две переменные: a и b. Имеется два метода, которые принимают два параметра: x и y. В обоих методах значение параметра x приравнивается сумме x и y. В методе Main мы подставляем на место параметров x и y переменные a и b соответственно. В первом случае переменная передается по значению, то есть передается копия этой переменной, и она не изменяется. Во втором случае мы передаем указатель на эту переменную в памяти. И так как в методе AdditionRefзначение параметра x изменяется, то передаваемая на его место переменная a тоже изменяет свое значение. Обратите внимание, что модификатор ref указывается, как при объявлении метода, так и при его вызове в методе Main. Модификатор out Выше мы использовали входные параметры. Но параметры могут быть также выходными. Чтобы сделать параметр выходным, перед ним ставится модификатор out:
Здесь результат возвращается не через оператор return, а через выходной параметр. Использование в программе:
Причем, как и в случае с ref ключевое слово out используется как при определении метода, так и при его вызове. Также обратите внимание, что методы, использующие такие параметры, обязательно должны присваивать им определенное значение. То есть следующий код будет недопустим, так как в нем для out-параметра не указано никакого значения:
Прелесть использования подобных параметров состоит в том, что по сути мы можем вернуть из метода не один вариант, а несколько. Например:
Здесь у нас есть метод GetData, который, допустим, принимает стороны прямоугольника. А два выходных параметра мы используем для подсчета площади и периметра прямоугольника. По сути, как и в случае с ключевым словом ref, ключевое слово out применяется для для передачи аргументов по ссылке. Однако в отличие от ref для переменных, которые передаются с ключевым словам out, не требуется инициализация. И кроме того, вызываемый метод должен обязательно присвоить им значение. Стоит отметить, что в версии C# 7.0 (Visual Studio 2017) можно определять переменные в непосредственно при вызове метода. То есть вместо:
Мы можем написать:
Необязательные параметры C# позволяет использовать необязательные параметры. Для таких параметров нам необходимо объявить значение по умолчанию. Также следует учитывать, что после необязательных параметров все последующие параметры также должны быть необязательными:
Так как последние два параметра объявлены как необязательные, то мы можем один из них или оба опустить:
Именованные параметры В предыдущих примерах при вызове методов значения для параметров передавались в порядке объявления этих параметров в методе. Но мы можем нарушить подобный порядок, используя именованные параметры:
|
Последнее изменение этой страницы: 2019-04-19; Просмотров: 255; Нарушение авторского права страницы