Error del compilador CS0452

Actualización: noviembre 2007

Mensaje de error

El tipo 'nombre del tipo' debe ser un tipo de referencia para poder utilizarlo como parámetro 'nombre del parámetro' en el tipo o método genérico 'identificador de genérico'
The type 'type name' must be a reference type in order to use it as parameter 'parameter name' in the generic type or method 'identifier of generic'

Este error se produce cuando se pasa un tipo de valor como struct o int como parámetro a un tipo o método genérico que tiene una restricción de tipo de referencia.

Ejemplo

El código siguiente genera el error CS0452.

// CS0452.cs
using System;
public class BaseClass<S> where S : class { }
public class Derived1 : BaseClass<int> { } // CS0452
public class Derived2<S> : BaseClass<S> where S : struct { } // CS0452