Обобщения (generics) в C#
В этом уроке вы напишете обобщённый класс, который можно использовать со многими типами данных, сохраняя безопасность типов.
Введение
Обобщения позволяют писать классы или методы с пока не заданным типом T, а конкретный тип выбирается при использовании. Так код пишется один раз и работает с int, string или любым другим типом, а компилятор по-прежнему полностью проверяет типы.
Класс Box<T> хранит значение типа T. Когда вы создаёте new Box<int>(42), T становится int, поэтому свойство Value имеет тип int, и если попытаться присвоить ему строку, компилятор сразу сообщит об ошибке. Тот же класс можно использовать как Box<string> или Box<double>, не переписывая его.
Пример на C#, который можно запустить
using System;
class Box<T>(T value) { public T Value { get; } = value; }
class Program
{
static void Main()
{
var box = new Box<int>(42);
Console.WriteLine(box.Value);
}
}
42Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи