编译器错误 CS0453
更新:2007 年 11 月
错误消息
类型“Type Name”必须是不可为 null 的值类型才能用作泛型类型中的参数“Parameter Name”或方法“Generic Identifier”
如果您在实例化具有 value 约束的泛型类型或方法时使用非值类型参数,就会发生此错误。使用可为 null 的值类型参数时也可能发生此错误。请参见下面的代码示例的最后两行。
示例
下面的代码生成此错误。
// CS0453.cs
using System;
public class HV<S> where S : struct { }
public class H1 : HV<string> { } // CS0453
public class H2 : HV<H1> { } // CS0453
public class H3<S> : HV<S> where S : class { } // CS0453
public class H4 : HV<int?> { } // CS0453
public class H5 : HV<Nullable<Nullable<int>>> { } // CS0453