使用英语阅读

通过


编译器错误 CS0815

无法将“expression”赋予隐式类型的局部变量

用作隐式类型变量的初始值设定项的表达式必须具有一个类型。 由于匿名函数表达式、方法组表达式和 null 文本表达式没有类型,因此它们不是适当的初始值设定项。 不能在隐式类型的变量的声明中用 null 值对其进行初始化,但稍后可为其赋予 null 值。 在 C# 版本 10 中,具有自然类型的 Lambda 表达式和方法组可用作 var 声明中的初始化表达式。

更正此错误

  1. 为变量提供显式类型。
  2. 或者,使用 C# 版本 10 及更高版本指定自然类型。

示例

以下代码生成 CS0815:

// cs0815.cs  
class Test  
{  
    public static int Main()  
    {  
        var d = s => -1; // CS0815  
        var e = (string s) => 0; // CS0815 for C# versions before 10
        var p = null; // CS0815  
        var del = delegate(string a) { return -1; }; // CS0815  
        return -1;  
    }  
}  

另请参阅