コンパイラ エラー CS0452

型 'type name' は、ジェネリック型のパラメーター 'parameter name'、またはメソッド 'identifier of generic' として使用するために、参照型でなければなりません

このエラーは、 structint などの値型を、ジェネリック型または参照型制約のあるジェネリック メソッドのパラメーターとして渡した場合に発生します。

次のコードではエラー 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  

関連項目