C#
Что такое класс и метод в C#: простое объяснение
Класс в C# — это описание будущего объекта: какие у него есть данные и какие действия он умеет выполнять. Метод — это действие или команда внутри класса. Например, класс User может хранить имя пользователя, а метод PrintName() может выводить это имя на экран
Класс как чертеж
Класс сам по себе не является конкретным пользователем, заказом или товаром. Он описывает, какими они будут:
public class User
{
public string Name { get; set; } = "";
public int Age { get; set; }
}
Здесь User — класс. У него есть свойства Name и Age. Они описывают данные, которые будут у конкретного пользователя
Объект как конкретный экземпляр
Чтобы получить реального пользователя в программе, создают объект:
User user = new User();
user.Name = "Анна";
user.Age = 25;
Теперь user — объект класса User. Можно создать много объектов одного класса:
User first = new User { Name = "Анна", Age = 25 };
User second = new User { Name = "Илья", Age = 31 };
Класс один, объектов может быть много
Метод как действие
Добавим метод:
public class User
{
public string Name { get; set; } = "";
public void PrintName()
{
Console.WriteLine(Name);
}
}
Метод PrintName выводит имя пользователя. Вызов:
User user = new User { Name = "Анна" };
user.PrintName();
Результат:
Анна
Метод находится внутри класса и работает с данными конкретного объекта
Метод с результатом
Метод может не только что-то выводить, но и возвращать значение:
public bool IsAdult()
{
return Age >= 18;
}
Такой метод отвечает на вопрос: совершеннолетний пользователь или нет. Его можно использовать в условии:
if (user.IsAdult())
{
Console.WriteLine("Можно оформить заказ");
}
Чем класс отличается от метода
Класс — это контейнер для данных и действий. Метод — это конкретное действие. Если говорить на примере интернет-магазина: Product — класс товара, CalculateDiscount() — метод расчета скидки, Order — класс заказа, GetTotal() — метод итоговой суммы
Где должны быть методы
Метод лучше размещать там, где находятся данные, с которыми он работает. Если метод считает итог заказа, ему логично быть в классе Order или в отдельном OrderCalculator. Если метод выводит имя пользователя, он может быть в User, но в реальном интерфейсе вывод часто остается в форме, а класс пользователя просто хранит данные
Не нужно складывать все методы в один огромный класс Helper. На старте это кажется удобным, но потом становится непонятно, где искать логику. Хороший ориентир: класс должен иметь одну понятную ответственность
Новичку полезно держать в голове простую схему:
класс -> описывает объект
объект -> конкретная штука в программе
метод -> действие, которое можно вызвать
Частые ошибки
Первая ошибка — думать, что класс сразу хранит данные. Данные появляются в объекте, созданном через new. Вторая — забывать вызвать метод со скобками. Третья — делать все методы static, хотя они должны работать с данными объекта. Четвертая — писать огромный класс, который отвечает за все сразу
Мини-задача: создайте класс Product со свойствами Title и Price. Добавьте метод PrintInfo(), который выводит название и цену. Создайте два товара и вызовите метод у каждого
Что почитать дальше по C#
- Классы и свойства в C#: первый пример
- Методы C#: как создать, вызвать и передать параметры
- Типы, переменные и строки в C#
- Рубрика C#
Источники: Microsoft classes, Microsoft methods
Что почитать дальше по C#
Если нужен общий маршрут по теме, откройте рубрику C#. Для соседних задач пригодятся эти разборы:
- C# с нуля: первый проект через dotnet new
- Вызов метода в C#: обычный метод, static и метод объекта
- Как использовать класс на других формах в C#
- Как установить .NET SDK для C#