Что означает "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>. Компилятор выполняет эту работу для вас.