Урок 43. Функции C#


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

Функции

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

Создание метода, возвращающего значение

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

Для объявления функции сначала указывается тип возвращаемого значения, за которым следует имя метода и пара скобок (). Код добавляется в блок кода. Поэтому код для объявления нашего пустого примера выглядит следующим образом:

string GetFormattedDate()
{
}
Чтобы вернуть значение вызывающей процедуре, используется команда return, за которой следует значение или объект, подлежащий возврату, как показано ниже:

string GetFormattedDate()
{
    DateTime theDate = DateTime.Now;
    return theDate.ToString("dd/MM/yyyy");
}
Теперь можно вызвать функцию. Если вы используете консольное приложение, класс по умолчанию будет называться Program и будет содержать метод Main, а также GetFormattedDate. Чтобы использовать новый, сначала создайте новый программный объект, а затем вызовите его функцию GetFormattedDate, присвоив результат переменной. Это можно контролировать в основном методе, делая окончательный код следующим образом:

static void Main(string[] args)
{
    Program p = new Program();
    string outputDate = p.GetFormattedDate();
 
    Console.WriteLine(outputDate);              // Outputs "06/11/2019"
}
 
string GetFormattedDate()
{
    DateTime theDate = DateTime.Now;
    return theDate.ToString("dd/MM/yyyy");
}
Добавление параметров

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

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

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

int GetArea(int rectHeight, int rectWidth)
{
    return rectHeight * rectWidth;
}

Теперь можно вызвать метод с указанными значениями параметров или аргументами:

static void Main(string[] args)
{
    Program p = new Program();
    int area = p.GetArea(10, 5);
 
    Console.WriteLine(area);    // "50"
}
 
int GetArea(int rectHeight, int rectWidth)
{
    return rectHeight * rectWidth;
}
Статический метод

В приведенном выше примере был создан новый объект класса Program, чтобы метод мог быть выполнен. Возможно, вы заметили, что метод Main был объявлен иначе, чем метод OutputFormattedDate. В частности, он имеет статический префикс. Это объявляет метод как статический метод, что означает, что ни один объект не должен быть создан до вызова метода. Используя префикс нового метода с тем же статическим ключевым словом, мы можем удалить требование для создания объекта программы.

static void Main(string[] args)
{
    int area = GetArea(10, 5);
 
    Console.WriteLine(area);    // "50"
}
 
static int GetArea(int rectHeight, int rectWidth)
{
    return rectHeight * rectWidth;
}
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, си шарп, уроки по си шарп, функции, методы
Читайте также:




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




Русификация и регистрация на форуме MyBB
Урок 9. Свойства computed и watch в Vue
Окно на сайт, всплывающее через некоторое время