Методы в C#: объявление, вызов, параметры, возвращаемые значения и перегрузка
Методы в C#
Освойте основы методов C# — как объявлять, вызывать, обрабатывать параметры, возвращать значения, использовать встроенные методы и перегрузку — на наглядных примерах.
Метод — это повторно используемый блок кода, выполняющий конкретную задачу. Например, в программе рисования, требующей создания и окрашивания круга, можно разделить работу на два метода: один рисует круг, другой окрашивает. Такой модульный подход улучшает читаемость, тестируемость и повторное использование.
Объявление метода в C#
Базовый синтаксис определения метода:
returnType methodName() {
// тело метода
}
Компоненты:
- returnType — тип данных, возвращаемый методом. Если ничего не возвращается, используйте
void. - methodName — идентификатор для ссылки на метод.
- method body — операторы, выполняемые при вызове, в фигурных скобках.
Пример:
void display() {
// код
}
Здесь display() — имя метода, void означает отсутствие возвращаемого значения.
Вызов метода в C#
После объявления метод вызывается по имени с круглыми скобками. Для display():
// вызов метода
display();

Практический пример: использование метода
using System;
namespace MethodDemo {
class Program {
// Объявление метода
public void Display() {
Console.WriteLine("Hello World");
}
static void Main(string[] args) {
// Создание экземпляра Program
Program p1 = new Program();
// Вызов метода Display
p1.Display();
Console.ReadLine();
}
}
}
Вывод
Hello World
Демонстрирует создание объекта p1 класса Program и вызов его метода Display().
Типы возвращаемых значений методов
Методы могут возвращать данные или быть void. Когда требуется возвращаемое значение, оператор return отправляет его вызывающему, а тип возвращаемого значения должен соответствовать типу значения.
int AddNumbers() {
int sum = 5 + 14;
return sum;
}
Пример: Возврат целого числа
using System;
namespace MethodDemo {
class Program {
// Статический метод с возвращаемым типом
static int AddNumbers() {
int sum = 5 + 14;
return sum;
}
static void Main(string[] args) {
int sum = AddNumbers();
Console.WriteLine(sum);
Console.ReadLine();
}
}
}
Вывод
19
Обратите внимание: static методы принадлежат классу, поэтому для их вызова не нужен экземпляр.
Методы с параметрами
Параметры позволяют методам принимать входные значения. Они объявляются в сигнатуре метода и передаются при вызове.
int AddNumber(int a, int b) {
return a + b;
}
Вызов с аргументами:
AddNumber(100, 100);

Пример 1: Сложение двух чисел
using System;
namespace MethodDemo {
class Program {
int AddNumber(int a, int b) {
return a + b;
}
static void Main(string[] args) {
Program p1 = new Program();
int sum = p1.AddNumber(100, 100);
Console.WriteLine("Sum: " + sum);
Console.ReadLine();
}
}
}
Вывод
Sum: 200
Пример 2: Метод с одним параметром
using System;
namespace MethodDemo {
class Program {
string Work(string task) {
return task;
}
static void Main(string[] args) {
Program p1 = new Program();
string result = p1.Work("Cleaning");
Console.WriteLine("Work: " + result);
Console.ReadLine();
}
}
}
Вывод
Work: Cleaning
Встроенные методы
Помимо пользовательских методов, C# предлагает богатую библиотеку встроенных. Например:
Math.Sqrt()— вычисляет квадратный корень.string.ToUpper()— преобразует строку в верхний регистр.
Пример: Использование Math.Sqrt
using System;
namespace MethodDemo {
class Program {
static void Main(string[] args) {
double result = Math.Sqrt(9);
Console.WriteLine("Square root of 9: " + result);
}
}
}
Вывод
Square root of 9: 3
Math.Sqrt входит в класс System.Math в .NET, задокументирован Microsoft.
Подробнее о встроенных методах C#.
Перегрузка методов
C# позволяет иметь несколько методов с одинаковым именем, если их списки параметров различаются. Это называется перегрузкой методов.
using System;
namespace MethodOverloadDemo {
class Program {
// Перегрузка с одним параметром
void Display(int a) {
Console.WriteLine("Arguments: " + a);
}
// Перегрузка с двумя параметрами
void Display(int a, int b) {
Console.WriteLine("Arguments: " + a + " and " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.Display(100);
p1.Display(100, 200);
Console.ReadLine();
}
}
}
Вывод
Arguments: 100 Arguments: 100 and 200
Перегрузка повышает читаемость и гибкость. Глубже см. C# Method Overloading.
Язык C
- Абстрактные классы и методы в C#: практическое руководство
- Частичные классы и методы в C#: понимание и применение
- Sealed-классы и sealed-методы в C#: когда использовать, примеры и повышение безопасности кода
- Освоение перегрузки методов в C#: концепции, примеры и лучшие практики
- Типы аннотаций в Java: предопределенные, кастомные и мета-аннотации
- Понимание String.charAt() в Java: синтаксис, возвращаемый тип, исключения и пример
- Переопределение методов в Java: настройка поведения суперкласса
- Java 8 Method References: подробное руководство (:: оператор)
- Методы в C#: определение, вызов, рекурсия и параметры
- Анонимные методы в C#: Упрощение работы с делегатами