Error del compilador CS0453

Actualización: noviembre 2007

Mensaje de error

El tipo 'Nombre de tipo' debe ser un tipo de valor distinto de null para poder utilizarlo como parámetro 'Nombre de parámetro' en el tipo o método genérico 'Identificador genérico'
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'

Este error aparece cuando utiliza un argumento de tipo sin valor para crear instancias de un tipo o método genérico que tiene la restricción value en él. También puede aparecer cuando utiliza un argumento de tipo con valor que acepta valores null. Vea las últimas dos líneas de código en el siguiente ejemplo.

Ejemplo

El código siguiente genera este error.

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