2012-03-14 14 views
63

È vietato in C# implementare un costruttore predefinito per una classe generica?Qual è la sintassi per un costruttore predefinito per una classe generica?

In caso negativo, perché il codice seguente non viene compilato? (Quando rimuovo <T> compila però)

Qual è il modo corretto di definire un costruttore predefinito per una classe generica allora?

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

Tempo di compilazione Errore:. Errore 1 gettone valido '(' in classe, struct, o dichiarazione di membro di interfaccia

risposta

109

Non fornisci il parametro type nel costruttore Ecco come si dovrebbe farlo

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

+1, questo è tutto quello che c'è da fare :) –

3

E se avete bisogno del tipo come una proprietà.

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

    public Type TheType { get;} 
} 
Problemi correlati