Пользовательские типы

Пользовательские типы

Помимо 16 встроенных предопределённых типов языка C#, разработчики могут создавать собственные пользовательские типы, разделяющиеся на шесть групп:

  1. Типы классов (class)
  2. Типы структур (struct)
  3. Типы массивов (array)
  4. Типы перечислений (enum)
  5. Типы делегатов (delegate)
  6. Типы интерфейсов (interface)

Создание пользовательского типа выполняется через объявление типа

  • Вид создаваемого типа
  • Имя нового пользовательского типа
  • Объявление всех членов данного типа (их имена и определения). Исключение составляют массивы и делегаты — у них нет именованных членов

После завершения объявления можно создавать и использовать объекты этого типа точно так же, как стандартные предопределённые типы.

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

Пример: базовые встроенные типы int и float работают из коробки, достаточно написать int age; float price;.
Для ранее упомянутого пользовательского типа Person нужно выполнить два шага:

Шаг первый: Объявление (определяем шаблон типа через class Person {})

Шаг второй: Инстанцирование (создаём объект командой Person lucas = new Person();)

// Класс автомобиля
public class Car
{
    // 1. Приватные поля (низкоуровневое хранение данных)
    private string _brand;    // Марка машины
    private string _color;    // Цвет кузова

    // 2. Публичные свойства (внешний доступ с поддержкой проверки значений)
    public string Brand
    {
        get { return _brand; }
        set
        {
            // Простая проверка: марка не может быть пустой строкой
            if (!string.IsNullOrEmpty(value))
                _brand = value;
            else
                Console.WriteLine("Название марки не может быть пустым!");
        }
    }

    public string Color
    {
        get { return _color; }
        set { _color = value; }
    }

    // 3. Метод поведения: движение
    public void Drive()
    {
        Console.WriteLine($"Автомобиль марки【{Brand}】цвета【{Color}】движется по дороге!");
    }
}Code language: JavaScript (javascript)

Пример выше реализует класс автомобиля с двумя полями. Поля — это переменные на основе встроенных типов для хранения реальных данных. Также здесь присутствуют два публичных свойства Brand и Color, по сути являющиеся функциями, мы разберем их позже. Также есть функциональный член public void Drive(){}.

Все разновидности пользовательских типов мы подробно разберем в следующих разделах.

Пользовательские типы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *