Leggere in inglese

Condividi tramite


Errore del compilatore CS0456

Il parametro di tipo 'Type Parameter Name 1' ha il vincolo 'struct'. Non è quindi possibile usare 'Type Parameter Name 1' come vincolo per ''Type Parameter Name2'

I vincoli di tipo valore sono implicitamente sealed e non è quindi possibile usarli su un secondo parametro di tipo. I tipi valore, infatti, non possono essere sottoposti a override. Per risolvere questo errore, applicare un vincolo di tipo valore direttamente al secondo parametro di tipo, anziché eseguire l'operazione in modo indiretto tramite il primo parametro di tipo.

Esempio

L'esempio seguente genera l'errore CS0456.

// CS0456.cs  
// compile with: /target:library  
public class GenericsErrors  
{  
   public class G5<T> where T : struct  
   {  
      public class N<U> where U : T {}   // CS0456  
      public class N2<U> where U : struct {}   // OK  
   }  
}