Сокращенная запись методов




Вызов методов

Чтобы использовать методы SayHello и SayGoodbye в программе, нам надо вызвать их в методе Main.

Для вызова метода указывается его имя, после которого в скобках идут значения для его параметров (если метод принимает параметры).

  название_метода (значения_для_параметров_метода);

Например, вызовем методы SayHello и SayGoodbye:

  using System;   namespace HelloApp { class Program { static void Main(string[] args) { SayHello(); SayGoodbye();   Console.ReadKey(); }   static void SayHello() { Console.WriteLine("Hello"); } static void SayGoodbye() { Console.WriteLine("GoodBye"); } } }

Консольный вывод программы:

Hello

GoodBye

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

Возвращение значения

Метод может возвращать значение, какой-либо результат. В примере выше были определены два метода, которые имели тип void. Методы с таким типом не возвращают никакого значения. Они просто выполняют некоторые действия.

Если метод имеет любой другой тип, отличный от void, то такой метод обязан вернуть значение этого типа. Для этого применяется оператор return, после которого идет возвращаемое значение:

  return возвращаемое значение;

Например, определим еще пару методов:

  static string GetHello() { return "Hello"; } static int GetSum() { int x = 2; int y = 3; int z = x + y; return z; }

Метод GetHello имеет тип string, следовательно, он должен возвратить строку. Поэтому в теле метода используется оператор return, после которого указана возвращаемая строка.

Метод GetSum имеет тип int, следовательно, он должен возвратить значение типа int - целое число. Поэтому в теле метода используется оператор return, после которого указано возвращаемое число (в данном случае результат суммы переменных x и y).

После оператора return также можно указывать сложные выражения, которые возвращают определенный результат. Например:

  static int GetSum() { int x = 2; int y = 3; return x + y; }

При этом методы, которые в качестве возвращаемого типа имеют любой тип, отличный от void, обязательно должны использовать оператор return для возвращения значения. Например, следующее определение метода некорректно:

  static string GetHello() { Console.WriteLine("Hello"); }

Также между возвращаемым типом метода и возвращаемым значением после оператора return должно быть соответствие. Например, в следующем случае возвращаемый тип - int, но метод возвращает строку (тип string), поэтому такое определение метода некорректно:

  static int GetSum() { int x = 2; int y = 3; return "5"; // ошибка - надо возвращать число }

Результат методов, который возвращают значение, мы можем присвоить переменным или использовать иным образом в программе:

  using System;   namespace HelloApp { class Program { static void Main(string[] args) { string message = GetHello(); int sum = GetSum();   Console.WriteLine(message); // Hello Console.WriteLine(sum); // 5   Console.ReadKey(); }   static string GetHello() { return "Hello"; } static int GetSum() { int x = 2; int y = 3; return x + y; } } }

Метод GetHello возвращает значение типа string. Поэтому мы можем присвоить это значение какой-нибудь переменной типа string: string message = GetHello();

Второй метод - GetSum - возвращает значение типа int, поэтому его можно присвоить переменной, которая принимает значение этого типа: int sum = GetSum();.

Выход из метода

Оператор return не только возвращает значение, но и производит выход из метода. Поэтому он должен определяться после отальных инструкций. Например:

  static string GetHello() { return "Hello"; Console.WriteLine("After return"); }

С точки зрения синтаксиса данный метод корректен, однако его инструкция Console.WriteLine("After return") не имеет смысла - она никогда не выполнится, так как до ее выполнения оператор return возвратит значение и произведет выход из метода.

Однако мы можем использовать оператор return и в методах с типам void. В этом случае после оператора return не ставится никакого возвращаемого значения (ведь метод ничего не возвращает). Типичная ситуация - в зависимости от опеределенных условий произвести выход из метода:

  static void SayHello() { int hour = 23; if(hour > 22) { return; } else { Console.WriteLine("Hello"); } }

Сокращенная запись методов

Если метод в качестве тела определяет только одну инструкцию, то мы можем сократить определение метода. Например, допустим у нас есть метод:

  static void SayHello() { Console.WriteLine("Hello"); }

Мы можемего сократить следующим образом:

  static void SayHello() => Console.WriteLine("Hello");

То есть после списка параметров ставится знак равно и больше чем, после которого идет выполняемая инструкция.

Подобным образом мы можем сокращать методы, которые возвращают значение:

  static string GetHello() { return "hello"; }

Анлогичен следующему методу:

  static string GetHello() => "hello";

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: