2012-03-14 18 views
63

¿Está prohibido en C# implementar un constructor predeterminado para una clase genérica?¿Cuál es la sintaxis para un constructor predeterminado para una clase genérica?

Si no, ¿por qué no se compila el siguiente código? (Cuando elimino <T>, compila)

¿Cuál es la forma correcta de definir un constructor predeterminado para una clase genérica en ese momento?

public class Cell<T> 
{ 
    public Cell<T>() 
    { 
    } 
} 

Tiempo de Compilación error:. Error 1 Elemento inválido '(' en clase, estructura o declaración de miembro de interfaz

Respuesta

109

Usted no proporciona el parámetro de tipo en el constructor Así es como se debe hacerlo

public class Cell<T> 
{ 
    public Cell() 
    { 
    } 
} 
+1

+1, eso es todo :) –

3

Y si usted necesita el tipo como una propiedad:.

public class Cell<T> 
{ 
    public Cell() 
    { 
     TheType = typeof(T); 
    } 

    public Type TheType { get;} 
} 
Cuestiones relacionadas