Leggere in inglese

Condividi tramite


Errore del compilatore CS0453

Il tipo 'type name' deve essere un tipo valore non nullable per poter essere usato come parametro 'Parameter Name' nel metodo o nel tipo generico 'Generic Identifier'

Questo errore si verifica quando si usa un argomento di tipo non valore quando si crea un'istanza di un metodo o tipo generico a cui è applicato il vincolo valore. Può verificarsi anche quando si usa un argomento di tipo valore nullable. Vedere le ultime due righe di codice nell'esempio seguente.

Esempio

Il codice seguente genera questo errore.

// CS0453.cs  
using System;  
public class HV<S> where S : struct { }

// CS0453: string is not a value type
public class H1 : HV<string> { }

// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }

// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK

// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }

// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }

Vedi anche