У меня есть опыт работы с VB, и я перехожу на C # для моей новой работы. Я также пытаюсь улучшить .NET в целом. Я видел, как ключевое слово "T" часто используется в примерах, которые публикуют люди. Что означает буква «T» в C #? Например:
public class SomeBase<T> where T : SomeBase<T>, new()
Что T
делать? Зачем мне это использовать?
Ответы:
Это символ параметра универсального типа . С таким же успехом это может быть что-то еще, например:
public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()
Только T используется по умолчанию и поощряется Microsoft.
источник
T - это не ключевое слово как таковое, а заполнитель для универсального типа. См. Введение в универсальные шаблоны Microsoft
Эквивалентный синтаксис VB.Net:
Public Class SomeBase(Of T As {Class, New}))
источник
Хорошим примером другого имени, используемого вместо T,
would
являются классы хеш-таблицы, напримерpublic class Dictionary<K,V> ...
Где
K
означает ключ иV
значение. Я думаю, этоT
означает тип.Вы могли это видеть. Если вы можете установить связь, это должно быть довольно полезно.
источник
Это было бы «универсальным». Как уже упоминалось, существует объяснение концепции Microsoft . Насчет того, почему именно "Т" - смотрите в этом вопросе .
Вкратце, он позволяет вам создать класс / метод, специализированный для определенного типа. Классический пример -
System.Collections.Generic.List<T>
класс. Он такой же, какSystem.Collections.ArrayList
, за исключением того, что позволяет хранить только элементы типаT
. Это обеспечивает безопасность типов - вы не можете (случайно или иным образом) поместить элементы неправильного типа в свой список. ПространствоSystem.Collections.Generic
имен содержит несколько других различных типов коллекций, которые используют это.А где его использовать - решать вам. Время от времени возникает множество вариантов использования. В основном это какая-то самодельная коллекция (когда встроенных не хватает), но это действительно может быть что угодно.
источник
Лучшим способом было бы познакомиться с "Generics", многими ресурсами в Интернете, вот один
T - это не ключевое слово, а имя, может быть что угодно, насколько я знаю, но T - это соглашение (когда нужен только один тип, coruse)
источник
Это
T
имя параметра типа в универсальном классе. Это означает «Тип», но вы могли бы с таким же успехом назвать его «Алиса».Вы используете дженерики для повышения возможности повторного использования безопасным для типов способом без ненужного дублирования кода. Таким образом, вам не нужно писать для классов
ListOfIntegers
,ListOfStrings
,ListOfChars
,ListOfPersons
и так далее , но вместо этого можно написать универсальный класс ,List<T>
а затем создавать объекты типовList<Int32>
,List<string>
,List<char>
иList<Person>
. Компилятор делает всю работу за вас.источник
Это означает «любой класс». Это может быть «Б», «А», что угодно. Я думаю, что T используется из-за "Template"
источник