Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

574
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda