Ler em inglês

Compartilhar via


Erro do Compilador CS0453

O tipo 'Nome do Tipo' deve ser um tipo de valor não anulável para usá-lo como parâmetro 'Nome do Parâmetro' no tipo genérico ou método 'Generic Identifier'

Esse erro ocorre quando você usa um argumento de tipo não de valor na instanciação de um tipo ou método genérico que tenha a restrição de valor nele. Também pode ocorrer quando você usa um argumento de tipo de valor anulável. Consulte as duas últimas linhas de código no exemplo a seguir.

Exemplo

O código a seguir gera esse erro.

C#
// 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>>> { }

Veja também