Leer en inglés

Compartir a través de


Error del compilador CS0453

El tipo 'Type Name' debe ser un tipo de valor que no acepte valores NULL para poder usarlo como el parámetro 'Parameter Name' en el tipo o método genéricos 'Generic Identifier'

Este error se produce cuando se utiliza un argumento de tipo que no es de valor en la creación de instancias de un tipo o un método genérico que tenga la restricción value. También puede producirse cuando se usa un argumento de tipo de valor que acepte valores NULL. Consulte las dos últimas líneas de código en el ejemplo siguiente.

Ejemplo

El código siguiente genera este error.

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

Consulte también