Tengo experiencia en VB y me estoy convirtiendo a C # para mi nuevo trabajo. También estoy tratando de mejorar en .NET en general. He visto que la palabra clave "T" se usa mucho en las muestras que publica la gente. ¿Qué significa la "T" en C #? Por ejemplo:
public class SomeBase<T> where T : SomeBase<T>, new()
¿Qué hace T
? ¿Por qué querría usarlo?
Respuestas:
Es un símbolo de un parámetro de tipo genérico . También podría ser otra cosa, por ejemplo:
public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()
Solo T es el predeterminado utilizado y recomendado por Microsoft.
fuente
T no es una palabra clave per se, sino un marcador de posición para un tipo genérico. Consulte la Introducción a los genéricos de Microsoft
La sintaxis equivalente de VB.Net sería:
Public Class SomeBase(Of T As {Class, New}))
fuente
Un buen ejemplo de otro nombre utilizado en lugar de T
would
son las clases de tabla hash, por ejemplopublic class Dictionary<K,V> ...
Donde
K
significa clave yV
valor. Creo queT
significa tipo.Puede que hayas visto esto por ahí. Si puede hacer la conexión, debería ser bastante útil.
fuente
Eso sería un "genérico". Como la gente ya ha mencionado, hay una explicación de Microsoft del concepto. En cuanto a por qué la "T" - vea esta pregunta .
En pocas palabras, le permite crear una clase / método que se especializa en un tipo específico. Un ejemplo clásico es la
System.Collections.Generic.List<T>
clase. Es lo mismo queSystem.Collections.ArrayList
, excepto que le permite almacenar solo el artículo de tipoT
. Esto proporciona seguridad de tipos: no puede (accidentalmente o de otro modo) poner elementos del tipo incorrecto en su lista. ElSystem.Collections.Generic
espacio de nombres contiene varios otros tipos de colecciones diferentes que hacen uso de esto.En cuanto a dónde podría usarlo, eso depende de usted. Hay muchos casos de uso que surgen de vez en cuando. En su mayoría, es una especie de colección hecha por uno mismo (cuando las incorporadas no son suficientes), pero realmente podría ser cualquier cosa.
fuente
La mejor manera sería familiarizarse con "Genéricos", muchos recursos en la web, aquí hay uno
T no es una palabra clave sino un nombre, podría ser cualquier cosa que yo sepa, pero T es la convención (cuando solo se necesita un tipo, de coruse)
fuente
El
T
es el nombre para el parámetro de tipo de una clase genérica. Significa "Tipo", pero también podrías llamarlo "Alice".Utiliza genéricos para aumentar la reutilización de una manera segura de tipos sin duplicar el código innecesariamente. Por lo tanto, no es necesario para las clases de escritura para
ListOfIntegers
,ListOfStrings
,ListOfChars
,ListOfPersons
y así sucesivamente, pero puede en cambio escribir una clase genéricaList<T>
y luego instanciar objetos de tiposList<Int32>
,List<string>
,List<char>
yList<Person>
. El compilador hace el trabajo por usted.fuente
Significa "cualquier clase". Podría ser "B", "A", lo que sea. Creo que se usa T debido a "Plantilla"
fuente