Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

563
Vistas
¿Qué significa "where T : class, new()"?

¿Puede explicarme qué significa where T : class, new() en la siguiente línea de código?

 void Add<T>(T item) where T : class, new();
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Esa es una restricción en el parámetro genérico T . Debe ser una class (tipo de referencia) y debe tener un constructor predeterminado público sin parámetros.

Eso significa que T no puede ser un int , float , double , DateTime o cualquier otra struct (tipo de valor).

Podría ser una string o cualquier otro tipo de referencia personalizada, siempre que tenga un constructor predeterminado o sin parámetros.

over 4 years ago · Santiago Trujillo Denunciar

0

Esas son restricciones de tipo genérico. En tu caso hay dos de ellos:

 where T : class

Significa que el tipo T debe ser un tipo de referencia (no un tipo de valor).

 where T : new()

Significa que el tipo T debe tener un constructor sin parámetros. Tener esta restricción te permitirá hacer algo como T field = new T(); en su código que no podría hacer de otra manera.

Luego combina los dos usando una coma para obtener:

 where T : class, new()
over 4 years ago · Santiago Trujillo Denunciar

0

donde T : estructura

El argumento de tipo debe ser un tipo de valor. Se puede especificar cualquier tipo de valor excepto Anulable. Consulte Uso de tipos que aceptan valores NULL (Guía de programación de C#) para obtener más información.

donde T : clase

El argumento de tipo debe ser un tipo de referencia, incluido cualquier tipo de clase, interfaz, delegado o matriz. (Vea la nota abajo.)

donde T : new() El argumento de tipo debe tener un constructor público sin parámetros. Cuando se usa junto con otras restricciones, la restricción new() debe especificarse en último lugar.

donde T : [nombre de la clase base]

El argumento de tipo debe ser o derivar de la clase base especificada.

donde T : [nombre de la interfaz]

El argumento de tipo debe ser o implementar la interfaz especificada. Se pueden especificar múltiples restricciones de interfaz. La interfaz de restricción también puede ser genérica.

donde T : U

El argumento de tipo proporcionado para T debe ser o derivar del argumento proporcionado para U. Esto se denomina restricción de tipo simple.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda