Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

548
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!