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#

Источники: Microsoft classes, Microsoft methods

Что почитать дальше по C#

Если нужен общий маршрут по теме, откройте рубрику C#. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x