Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Il parametro del tipo 'Nome parametro di tipo 1' dispone del vincolo 'struct', pertanto non può essere utilizzato come vincolo per 'Nome parametro di tipo 2'.
Type parameter 'Type Parameter Name 1' has the 'struct' constraint so 'Type Parameter Name 1' cannot be used as a constraint for 'Type Parameter Name 2'
I vincoli di tipo di valore sono implicitamente sealed e non è quindi possibile utilizzarli su un secondo parametro di tipo. I tipi di valore, infatti, non possono essere sottoposti a override. Per correggere l'errore, applicare un vincolo di tipo di valore direttamente al secondo parametro di tipo, anziché eseguire l'operazione in modo indiretto tramite il primo parametro di tipo.
Esempio
Il seguente codice di esempio 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
}
}