CS0452 de erro do compilador

Mensagem de erro

O tipo 'nome do tipo' deve ser um tipo de referência para usá-lo sistema autônomo parâmetro de nome de parâmetro do genéricas tipo ou método 'identificador de genérica'

Este erro ocorre quando você passar um tipo de valor, sistema autônomo um struct ou int sistema autônomo um parâmetro para um tipo genérico ou método que possui uma restrição de tipo de referência.

Exemplo

O código a seguir gera erro 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