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