CS0453 de erro do compilador

Mensagem de erro

O tipo 'Nome do tipo' deve ser um tipo de valor não nulo para usá-lo sistema autônomo parâmetro de 'Nome do parâmetro' no tipo genérico ou método 'Identificador genérico'

Este erro ocorre quando você usa um argumento de tipo de valor não na instanciação de um tipo genérico ou método que possui o value restrição sobre ele. Ele também pode ocorrer quando você usa um argumento de tipo de valor nulo.Consulte as duas últimas linhas de código no exemplo a seguir.

Exemplo

O código a seguir gera este erro.

// 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