2010-11-03 16 views

Respuesta

10

Esto restringe el genérico MyClass<T> para que solo funcione con las instancias T que tienen un constructor sin parámetros disponible. Esto le permite utilizar con seguridad la siguiente expresión dentro del tipo

new T() 

Sin la limitación new esto no estaría permitido porque el CLR no pudo verificar el tipo T tenía una constructora aplicable.

+0

Fantástico. Eso me ayuda más de lo que esperaba – Dann

4

Significa que T debe tener un constructor público sin parámetros. Por ejemplo (de MSDN), la siguiente creación de un nuevo objeto T debe ser posible:

class ItemFactory<T> where T : new() 
{ 
    public T GetNewItem() 
    { 
     return new T(); 
    } 
} 

Para obtener más información, por favor ver new constraint en MSDN.

1

Se le permite escribir:

T obj = new T(); 

lo que generaría un error del compilador sin la cláusula new().

Cuestiones relacionadas