На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Урок 42. Методы C#


Сорок вторая часть учебника по C# для начинающих начинает сводить воедино информацию из предыдущих уроков, чтобы позволить построить полностью рабочую программу. В этом разделе рассматривается создание и вызов пользовательских методов.

Что такое метод?

В первой статье в учебнике по основам C# я представил концепцию метода. Метод - это дискретный фрагмент кода, который может быть вызван другими функциями. При вызове управление программой передается методу, который выполняет свои действия перед возвратом управления обратно команде, следующей за вызывающим оператором. Часто методы вызывают другие методы.

Использование методов дает несколько преимуществ. Ключевым преимуществом является то, что код, который в противном случае был бы дублирован, может храниться в одном месте. Если код для конкретной функции существует в одной подпрограмме, модификации и исправления ошибок намного проще, чем если бы код был продублирован. Второе преимущество заключается в том, что когда методу присваивается описательное имя, он может облегчить понимание исходного кода. Это помогает создавать самодокументированный код, который требует меньше комментариев из-за своей простоты.

Методы всегда связаны с классом или структурой. Однако объектно-ориентированные концепции классов выходят за рамки учебника для начинающих. Как и в предыдущих статьях, описанные примеры будут ограничены программой одного класса.

Создание метода

В этом разделе мы создадим простой метод, который получает текущую дату и время. Часть даты будет выведена на консоль. Хотя функциональность проста, она служит хорошей демонстрацией структуры метода и иллюстрирует, как код может быть изменен централизованно, если, например, форматирование всех дат должно быть изменено в течение большой программы.

Присвоение имени методу

Методы могут быть названы с использованием тех же правил, что и переменные. Допускается использование букв верхнего и нижнего регистра, цифр и символа подчеркивания ( _ ). Хотя любая комбинация этих символов допустима, методы должны иметь описательные имена, указывающие на действие, которое они выполняют. Общим стандартом является использование регистра Pascal для имени метода, что означает, что первая буква имени метода заглавная, а оставшийся текст - нижний регистр. Там, где несколько слов соединены вместе, каждое слово начинается с заглавной буквы.

Примеры имен методов:

  • Delete
  • DeleteFile
  • ConnectToDatabase
  • OutputFormattedDate
Создание метода

Самый простой тип метода - это тот, который выполняет задачу, не требуя никаких параметров и не возвращая никакой информации. Этот тип метода, который мы создадим на данном уроке. Более сложные методы будут исследованы в последующих частях учебника.

Объявление метода аналогично определению переменной. За типом возвращаемого значения метода следует имя метода. Если возвращаемое значение отсутствует, тип устанавливается равным void. Поскольку мы не используем никаких параметров, добавляется пустая пара скобок (). Код для объявления нашего примера метода выглядит следующим образом:

void OutputFormattedDate()
Примечание: чтобы использовать этот пример, создайте консольное приложение и добавьте код в фигурные скобки класса, но вне метода Main. Полный пример можно найти в конце этой статьи.

Добавление кода

После объявления метода ему требуется блок кода. Как и все блоки кода, последовательность команд окружена фигурными скобками, {}. В следующем примере добавляется код для вывода форматированной даты на консоль.

void OutputFormattedDate()
{
    DateTime theDate = DateTime.Now;
    Console.WriteLine(theDate.ToString("dd/MM/yyyy"));
}
Возврат из метода по завершении

Приведенный выше пример метода просто определяет текущую дату и выводит ее. После Console.WriteLine метод не имеет дальнейшего кода для выполнения, поэтому управление возвращается в точку, где метод был первоначально вызван. Тем не менее, можно указать программе на возврат из метода в любой момент, добавив оператор return. Следующий пример показывает это, выходя без вывода даты, если это Рождество.

void OutputFormattedDate()
{
    DateTime theDate = DateTime.Now;
    if (theDate.Day == 25 && theDate.Month == 12)
    {
        return;
    }
    Console.WriteLine(theDate.ToString("dd/MM/yyyy"));
}
Команда return может использоваться несколько раз в рамках метода для выхода в разных точках в соответствии с вашими требованиями. Однако количество точек возврата должно быть сведено к минимуму, чтобы сохранить код читаемым. В идеале у вас должен быть только один оператор return или метод должен выйти естественным образом, когда элемент управления достигает закрывающего символа фигурной скобки.

Вызов метода

Теперь, когда метод создан, его можно вызвать. Как и другие методы, рассмотренные в этом руководстве, он принадлежит классу. Если вы используете стандартное консольное приложение, этот класс будет называться Program и будет содержать основной метод, а также OutputFormattedDate. Чтобы использовать новый метод, необходимо сначала создать новый объект программы и вызвать его функцию OutputFormattedDate. Это можно контролировать в основном методе, делая окончательный код следующим образом:

class Program
{
    static void Main(string[] args)
    {
        Program p = new Program();
        p.OutputFormattedDate();
    }
 
 
    void OutputFormattedDate()
    {
        DateTime theDate = DateTime.Now;
        Console.WriteLine(theDate.ToString("dd/MM/yyyy"));
    }
}
 
/* Вывод
 
05/11/2019
 
*/





тегистатьи IT, си шарп, уроки по си шарп, методы





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Как улучшить настроение
Зачем изучать алгоритмы программирования?


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.