C #: ¿Tipos genéricos que tienen un constructor?
Tengo el siguiente código de prueba de C #:
class MyItem
{
MyItem( int a ) {}
}
class MyContainer< T >
where T : MyItem, new()
{
public void CreateItem()
{
T oItem = new T( 10 );
}
}
Visual Studio no puede compilarlo, el error está en la línea donde se usa 'nuevo':
'T': cannot provide arguments when creating an instance of a variable type
¿Es posible en C # crear un objeto de tipo genérico con un constructor sin parámetros? No es un problema hacer eso en las plantillas de C ++, así que tengo mucha curiosidad por la razón por la que no puedo hacer lo mismo en C #. ¿Tal vez se requiera algo adicional de "dónde" o la sintaxis es diferente?