Errore del compilatore CS0453

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo 'Nome tipo' deve essere un tipo di valore che non ammette Null per utilizzarlo come parametro 'Nome parametro' nel tipo generico o nel metodo 'Identificatore generico'.
The type 'Type Name' must be a non-nullable value type in order to use it as parameter 'Parameter Name' in the generic type or method 'Generic Identifier'

Questo errore si verifica quando si utilizza l'argomento di un tipo non di valore o di un tipo di valore nullable per creare un'istanza di un metodo o di un tipo generico su cui è specificato un vincolo value Ciò puo verificarsi anche quando si utilizza un argomento con tipo di valore nullable. Esaminare le ultime due righe del codice riportato nell'esempio seguente.

Esempio

Il codice seguente genera questo errore.

// CS0453.cs
using System;
public class HV<S> where S : struct { }
public class H1 : HV<string> { }                   // CS0453
public class H2 : HV<H1> { }                       // CS0453
public class H3<S> : HV<S> where S : class { }     // CS0453
public class H4 : HV<int?> { }                     // CS0453
public class H5 : HV<Nullable<Nullable<int>>> { }  // CS0453