Полное руководство по языку программирования С# 14 и платформе .NET 10 / Основы программирования на C#

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

Начальный ⏱ 3 мин чтения 👁 2 🕓 обновлено 11.08.2026

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

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

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

Например, определим метод, который возвращает значение типа string:


string GetMessage()
{
	return "Hello";
}

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

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


string GetMessage()
{
	Console.WriteLine("Hello");
}

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


string GetMessage()
{
	return 3;	// Ошибка! Метод должен возвращать строку, а не число
}

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


string GetMessage()
{
	return "Hello";
}

string message = GetMessage();	// получаем результат метода в переменную message
Console.WriteLine(message);		// Hello

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

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


string GetMessage()
{
	return "Hello";
}
void PrintMessage(string message)
{
	Console.WriteLine(message);
}
PrintMessage(GetMessage());

В вызове PrintMessage(GetMessage()) сначада вызывается метод GetMessage() и его результат передается параметру message метода PrintMessage

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


int Sum(int x, int y)
{
    return x + y;
}

int result = Sum(10, 15);   // 25
Console.WriteLine(result);   // 25

Console.WriteLine(Sum(5, 6));   // 11

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

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

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


string GetMessage()
{
	return "hello";
}

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


string GetMessage() => "hello";

А метод


int Sum(int x, int y)
{
    return x + y;
}

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

int Sum(int x, int y) => x + y;

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

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


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

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

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


void PrintPerson(string name, int age)
{
    if(age > 120 || age < 1)
    {
        Console.WriteLine("Недопустимый возраст");
        return;
    }
    Console.WriteLine($"Имя: {name}  Возраст: {age}");
}

PrintPerson("Tom", 37);         // Имя: Tom  Возраст: 37
PrintPerson("Dunkan", 1234);    // Недопустимый возраст

Здесь метод PrintPerson() в качестве параметров принимает имя и возраст пользователя. Однако в методе вначале мы проверяем, соответствует ли возраст некоторому диапазону (меньше 120 и больше 0). Если возраст находится вне этого диапазона, то выводим сообщение о недопустимом возрасте и с помощью оператора return выходим из метода. После этого метод заканчивает свою работу.

Однако если возраст корректен, то выводим информацию о пользователе на консоль. Консольный вывод:

Имя: Tom  Возраст: 37
Недопустимый возраст

Проверь себя

📋 Тест по теме «Возвращение значения и оператор return» Тест по теме

Практические задания

Лёгкое Ручная проверка Заполните пропуск в коде (2)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

string GetMessage()
{
	return "_____";
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (3)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

string GetMessage()
{
	Console._____("Hello");
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (4)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

string GetMessage()
{
	return _____;	// Ошибка! Метод должен возвращать строку, а не число
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (5)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

string GetMessage()
{
	return "Hello";
}

string _____ = GetMessage();	// получаем результат метода в переменную message
Console.WriteLine(message);		// Hello
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (2)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

string _____()
{
	return "_____";
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Расставьте строки кода в правильном порядке
+20 XP

Строки кода из примера этого урока перемешаны. Впишите их в правильном порядке, каждую строку — с новой строки.

string GetMessage()
	return "Hello";
}
{
Войдите, чтобы отправить решение
Сложное Ручная проверка Объясните и модифицируйте пример из урока «Возвращение значения и оператор return»
+30 XP

Опишите своими словами, что делает приведённый пример кода из урока «Возвращение значения и оператор return», и предложите одно осмысленное изменение (например, другое входное значение или дополнительное условие). Приведите итоговый код.

return возвращаемое значение;
Войдите, чтобы отправить решение
Сложное Ручная проверка Найдите потенциальную проблему в коде урока «Возвращение значения и оператор return»
+30 XP

Изучите приведённый фрагмент кода и опишите, при каких входных данных или условиях он может сработать не так, как ожидается (граничный случай, отсутствие проверки и т.п.). Предложите исправленный вариант.

string GetMessage()
{
	return "Hello";
}
Войдите, чтобы отправить решение
Мини-проект Ручная проверка Мини-проект по теме «Возвращение значения и оператор return»
+50 XP

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

Войдите, чтобы отправить решение
Домашнее задание Ручная проверка Домашнее задание по теме «Возвращение значения и оператор return»
+25 XP

Напишите собственную небольшую программу, применяющую материал темы «Возвращение значения и оператор return». Используйте не менее одной конструкции, показанной в примерах урока. Прикрепите код решения и краткое описание того, что он делает.

Войдите, чтобы отправить решение

Обсуждение (0)

Войдите, чтобы оставить комментарий.