Файл: Функции в предыдущей статье были созданы простые методы C# для централизации задач, повышения читаемости и ремонтопригодности кода..docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.05.2024

Просмотров: 6

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Функции

В предыдущей статье были созданы простые методы 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;

}