有两个项目,一个是针对.NET Standard 2.0的库,另一个是针对.NET Core 2.2的控制台应用程序。现在这段代码可以在.NET Standard 2.0库上运行,但无法在.NET Core 2.2上运行。
for (int i = 0; i < 1; i++) {
var y = new int[1].First(i => i == 0); // Conflict i name error here in .NET Core 2.2.
Console.WriteLine("Hello " + y);
}
我理解从这个问题,简单的名称不应该有不同的含义,因此,即使是.NET Standard 2.0库也应该出现错误,但实际上并没有。为什么会出现这种不一致性?
我尝试了dotnet fiddle,它似乎在.NET Core 3.1和Roslyn 3.4上运行良好,但在.NET Framework 4.7.2上却没有,这更加令人困惑。这里到底发生了什么?
.Net Core 3.1(通过)https://dotnetfiddle.net/Cc1hmk
Roslyn 3.4(通过)https://dotnetfiddle.net/megBiw
.NET Framework 4.7.2(编译错误)https://dotnetfiddle.net/6PPqDs
<langversion>latest</langversion>
。 - Ghasan غسان