O que significa “T” em c #?

Eu tenho um plano de fundo do VB e estou convertendo para c # para meu novo trabalho. Eu também estou tentando melhorar no .NET em geral. Eu vi a palavra-chave “T” muito usada em amostras postadas por pessoas. O que o “T” significa em c #? Por exemplo:

public class SomeBase where T : SomeBase, new() 

O que T faz? Por que eu iria querer usá-lo?

É um símbolo para um parâmetro de tipo genérico . Poderia ser outra coisa, por exemplo:

 public class SomeBase where GenericThingy : SomeBase, new() 

Apenas T é o padrão usado e incentivado pela Microsoft.

T não é uma palavra-chave per se, mas um marcador para um tipo genérico. Veja Introdução da Microsoft a genéricos

A syntax equivalente do VB.Net seria:

 Public Class SomeBase(Of T As {Class, New})) 

Um bom exemplo de outro nome usado em vez de T would as classs da tabela de hash, por exemplo

 public class Dictionary ... 

Onde K significa Key e V por valor. Eu acho que T significa tipo.

Você pode ter visto isso por aí. Se você puder fazer a conexão, ela deve ser bastante útil.

Isso seria um “genérico”. Como as pessoas já mencionaram, há uma explicação da Microsoft sobre o conceito. Quanto ao por que o “T” – veja esta pergunta .

Em suma, permite criar uma class / método especializado em um tipo específico. Um exemplo clássico é a class System.Collections.Generic.List . É o mesmo que System.Collections.ArrayList , exceto que ele permite que você armazene apenas um item do tipo T Isso fornece segurança de tipo – você não pode (acidentalmente ou não) colocar itens do tipo errado em sua lista. O namespace System.Collections.Generic contém vários outros tipos de coleta diferentes que fazem uso disso.

Quanto a onde você poderia usá-lo – isso é com você. Existem muitos casos de uso que surgem de tempos em tempos. Principalmente, é uma espécie de coleção feita por eles mesmos (quando os internos não são suficientes), mas pode ser realmente qualquer coisa.

A melhor maneira seria familiarizar-se com “genéricos”, muitos resources na Web, aqui está um

T não é uma palavra-chave, mas um nome, poderia ser qualquer coisa realmente, tanto quanto eu sei, mas T é a convenção (quando apenas um tipo é necessário, de coruse)

Isso significa “qualquer class”. Pode ser “B”, “A”, o que for. Eu acho que T é usado por causa de “Template”

O T é o nome do parâmetro de tipo em uma class genérica. Significa “Tipo”, mas você pode chamá-lo de “Alice”.

Você usa genéricos para aumentar a capacidade de reutilização de maneira segura, sem duplicar desnecessariamente o código. Assim, você não precisa escrever classs para ListOfIntegers , ListOfStrings , ListOfChars , ListOfPersons e assim por diante, mas pode, em vez disso, escrever uma class genérica List e instanciar objects de tipos List , List , List e List . O compilador faz o trabalho para você.