英語で読む

次の方法で共有


コンパイラ エラー CS0315

型 'valueType' をジェネリック型またはメソッド 'TypeorMethod<T>' で型パラメーター 'T' として使用できません。 'valueType' から 'referenceType' へのボックス変換がありません。

このエラーは、ジェネリック型を特定のクラスに制約し、暗黙的にボックス化できない値型を使用してそのクラスのインスタンスを構築しようとしたときに発生します。

このエラーを解決するには

  1. 1 つの解決方法は、構造体をクラスとして再定義することです。

次の例では、CS0315 が生成されます。

// cs0315.cs  
public class ClassConstraint { }  
public struct ViolateClassConstraint { }  
  
public class Gen<T> where T : ClassConstraint  
{
}  
public class Test  
{  
    public static int Main()  
    {  
        Gen<ViolateClassConstraint> g = new Gen<ViolateClassConstraint>(); //CS0315  
        return 1;  
    }  
}  

関連項目