コンパイラ エラー CS0453
型 'Type Name' は、ジェネリック型のパラメーター 'Parameter Name'、またはメソッド 'Generic Identifier' として使用するために、Null 非許容の値型である必要があります
このエラーは、value 制約があるジェネリック型またはメソッドをインスタンス化するときに、値型ではない引数を使用すると発生します。 Null 許容値型引数を使用する場合にも発生することがあります。 次に示すコード例の最後の 2 行を参照してください。
次のコードでは、このエラーが生成されます。
// CS0453.cs
using System;
public class HV<S> where S : struct { }
// CS0453: string is not a value type
public class H1 : HV<string> { }
// CS0453: H1 is a class, not a struct
public class H2 : HV<H1> { }
// CS0453: HV is based on a class, not a struct
public class H3<S> : HV<S> where S : class { }
public class H4<S> : HV<S> where S : struct { } // OK
// CS0453: HV accepts a nullable int type
public class H4 : HV<int?> { }
// CS0453: HV is based on Nullable type of int
public class H5 : HV<Nullable<Nullable<int>>> { }
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。