Errore del compilatore CS0314

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile utilizzare tipo 'tipo1' come parametro di tipo 'nome' nel tipo o metodo generico 'nome'. Nessuna conversione boxing o conversione di parametri di tipo da 'tipo1' a 'tipo2'.
The type 'type1' cannot be used as type parameter 'name' in the generic type or method 'name'. There is no boxing conversion or type parameter conversion from 'type1' to 'type2'.

Quando un tipo generico utilizza un parametro di tipo vincolato, anche la nuova classe deve soddisfare gli stessi vincoli.

Per correggere l'errore

  • Nell'esempio seguente, aggiungere where T : ClassConstraint alla classe B.

Esempio

Nel codice seguente viene generato l'errore CS0314:

// cs0314.cs
// Compile with: /target:library
public class ClassConstraint { }

public class A<T> where T : ClassConstraint
{ }

public class B<T> : A<T> //CS0314
{ }

// Try using this instead.
public class C<T> : A<T> where T : ClassConstraint
{ }

Vedere anche

Riferimenti

Vincoli sui parametri di tipo (Guida per programmatori C#)