Параметр типа
Имя параметра пишут в угловых скобках после
имени типа, например Box<T>. Внутри
класса T выступает как обычный тип:
им можно объявлять поля, свойства и методы.
При создании экземпляра вместо T
подставляют конкретный тип, например
Box<int> или Box<string>.
Синтаксис
class Имя<T>
{
public T поле;
}
Пример
Давайте сохраним строку в Box<string>:
using System;
class Box<T>
{
public T Value;
}
class Program
{
static void Main()
{
var box = new Box<string> { Value = "abcde" };
Console.WriteLine(box.Value);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте используем тот же класс с типом int:
using System;
class Box<T>
{
public T Value;
}
class Program
{
static void Main()
{
var box = new Box<int> { Value = 5 };
Console.WriteLine(box.Value);
}
}
Результат выполнения кода:
5
Пример
Давайте вернём значение поля через метод:
using System;
class Holder<T>
{
public T Item;
public T Read()
{
return Item;
}
}
class Program
{
static void Main()
{
var holder = new Holder<string> { Item = "12345" };
Console.WriteLine(holder.Read());
}
}
Результат выполнения кода:
"12345"
Смотрите также
-
обобщённый метод,
который задаётTу самого метода -
default для T,
который даёт значение по умолчанию параметра -
List,
который хранит элементы заданного типа -
typeof,
который получает объектTypeпо типу