Главная страница » C# » 30. Параметры методов
Параметры методов позволяют передавать данные в метод для обработки. Это делает код более гибким и повторно используемым.
📌 Пример метода с параметром:
void Greet(string name)
{
Console.WriteLine($"Привет, {name}!");
}
🔹 Вызов метода:
Greet("Алексей"); // Привет, Алексей!
Передаются в метод по значению (копируются). Изменения внутри метода не затрагивают оригинальную переменную.
📌 Пример:
void ChangeNumber(int num)
{
num = 10;
Console.WriteLine($"Внутри метода: {num}");
}
int x = 5;
ChangeNumber(x);
Console.WriteLine($"После вызова метода: {x}");
🔹 Вывод:
Внутри метода: 10
После вызова метода: 5
Переменная x
осталась неизменной.
ref
)Позволяет передавать ссылку на переменную, а не её копию. Изменения внутри метода сохраняются.
📌 Пример:
void ChangeNumber(ref int num)
{
num = 10;
}
int x = 5;
ChangeNumber(ref x);
Console.WriteLine(x); // 10
🔹 Переменная x
изменилась.
❗ Перед вызовом метода с
ref
параметром переменная должна быть инициализирована.
out
)Позволяют возвращать несколько значений через параметры. Переменную не нужно инициализировать перед вызовом.
📌 Пример:
void GetValues(out int a, out int b)
{
a = 10;
b = 20;
}
int x, y;
GetValues(out x, out y);
Console.WriteLine($"{x}, {y}"); // 10, 20
🔹 Метод устанавливает значения переменных.
❗ Переменная перед вызовом метода не должна быть инициализирована.
params
)Позволяет передавать переменное количество аргументов.
📌 Пример:
void PrintNumbers(params int[] numbers)
{
foreach (var num in numbers)
{
Console.Write(num + " ");
}
}
PrintNumbers(1, 2, 3, 4, 5); // 1 2 3 4 5
🔹 Можно передавать любое количество аргументов.
❗
params
-параметр должен быть последним в списке параметров.
Можно задать значение параметра по умолчанию, если он не передан.
📌 Пример:
void SayHello(string name = "Гость")
{
Console.WriteLine($"Привет, {name}!");
}
SayHello(); // Привет, Гость!
SayHello("Анна"); // Привет, Анна!
Для объектов, массивов и списков передача всегда идёт по ссылке.
📌 Пример с массивом:
string name = "Анна";
int age = 25;
string info = $"Имя: {name}, Возраст: {age}";
Console.WriteLine(info); // Имя: Анна, Возраст: 25
🔹 Массив изменился, так как передавался по ссылке.
✅ Параметры методов позволяют передавать данные внутрь метода.
✅ Передача по ссылке (ref
) даёт возможность менять значение переменной.
✅ Выходные параметры (out
) позволяют возвращать несколько значений.
✅ Массив параметров (params
) даёт возможность передавать разное количество аргументов.
✅ Значения по умолчанию делают методы гибче и удобнее.
🚀 Теперь вы умеете эффективно работать с параметрами в C#!
Swap
, который меняет местами два числа с использованием ref
.Divide
, который принимает два числа и возвращает частное и остаток с использованием out
.SumAll
, который принимает любое количество чисел (params
) и возвращает их сумму.📌 Пример решения:
using System;
class Program
{
static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
static void Divide(int dividend, int divisor, out int quotient, out int remainder)
{
quotient = dividend / divisor;
remainder = dividend % divisor;
}
static int SumAll(params int[] numbers)
{
int sum = 0;
foreach (var num in numbers)
sum += num;
return sum;
}
static void Main()
{
int x = 3, y = 7;
Swap(ref x, ref y);
Console.WriteLine($"x = {x}, y = {y}"); // x = 7, y = 3
int q, r;
Divide(10, 3, out q, out r);
Console.WriteLine($"Частное: {q}, Остаток: {r}"); // Частное: 3, Остаток: 1
Console.WriteLine(SumAll(1, 2, 3, 4)); // 10
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.