编译器错误 CS0037

更新:2007 年 11 月

错误消息

无法将 null 转换成“type”,因为它是不可以为 null 的值类型

编译器不能给值类型赋空值,只能给引用类型或可为空值的类型赋空值。而 struct 是一个值类型。有关更多信息,请参见可空类型(C# 编程指南)

下面的示例生成 CS0037:

// CS0037.cs
public struct s
{
}

class a
{
   public static void Main()
   {
      int i = null;   // CS0037
      s ss = null;    // CS0037
   }
}