コンパイラ エラー CS0315
型 'valueType' をジェネリック型またはメソッド 'TypeorMethod<T>' で型パラメーター 'T' として使用できません。 'valueType' から 'referenceType' へのボックス変換がありません。
このエラーは、ジェネリック型を特定のクラスに制約し、暗黙的にボックス化できない値型を使用してそのクラスのインスタンスを構築しようとしたときに発生します。
- 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;
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。