Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1109 of 1492 menu
◀ ▶

typeof для открытого типа

Запись typeof(List<>) получает открытое определение: имя содержит обратную кавычку и число параметров. Для закрытого типа typeof(List<int>) имя совпадает, а FullName дополнительно перечисляет аргументы. Так различают «шаблон» списка и список конкретного типа.

Синтаксис

Type open = typeof(List<>); Type closed = typeof(List<int>);

Пример

Давайте выведем Name открытого типа List<>:

using System; using System.Collections.Generic; class Program { static void Main() { var open = typeof(List<>); Console.WriteLine(open.Name); } }

Результат выполнения кода:

"List`1"

Пример

Давайте сравним имя закрытого List<int>:

using System; using System.Collections.Generic; class Program { static void Main() { var closed = typeof(List<int>); Console.WriteLine(closed.Name); } }

Результат выполнения кода:

"List`1"

Пример

Давайте выведем FullName открытого и закрытого типа:

using System; using System.Collections.Generic; class Program { static void Main() { string open = typeof(List<>).FullName; string closed = typeof(List<int>).FullName; Console.WriteLine(open == closed ? "same" : "diff"); } }

Результат выполнения кода:

"diff"

Смотрите также

  • typeof,
    который возвращает метаданные типа
  • List,
    который является обобщённым классом
  • параметр типа,
    который объявляет T в коде
  • GetType,
    который получает тип экземпляра во время выполнения
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить