編譯器錯誤 CS0815
無法指派 'expression' 給隱含類型區域變數
作為隱含類型變數之初始設定式的運算式必須具有類型。 由於匿名函式運算式、方法群組運算式和 null 常值運算式沒有類型,因此不是適當的初始設定式。 隱含類型變數無法在其宣告中使用 null 值進行初始化,不過稍後可指派 null 值給它。
在 C# 10 版中,可以使用 Lambda 運算式和具有自然類型的方法群組作為 var
宣告中的初始設定式。
- 為變數提供明確類型。
- 或者,使用 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;
}
}