我有一個簡單的代碼,我嘗試編譯對飛:如何即時編譯C#7代碼?
namespace A
{
class Test
{
public static void Test()
{
int.TryParse("12", out int result);
}
}
}
通常我使用CSharpCodeProvider
或CodeDomProvider
。不幸的是,過渡到C#6/C#7,我得到以下錯誤:
error CS1644: Feature `declaration expression' cannot be used because it is not part of the C# 6.0 language specification
整個球場的代碼確實包含C#7特點和他們編得很好,使用的MSBuild/xbuild。
我明白這個錯誤,但我不知道是否有其他方法來編譯這段代碼?
重要聲明 - 我在Mono上運行它,但是我現在沒有選擇嘗試.Net。這可能是單聲道問題,但似乎是通用的。
https://www.nuget.org/packages/Microsoft.CSharp/ –
@HansPassant該軟件包如何相關? 「CSharpCodeProvider」位於「Microsoft.CSharp」*命名空間*中,與「Microsoft.CSharp」*包無關。 – svick
你正在使用System.CodeDom,它沒有辦法指定一個更新的C#或CLR版本,它停留在版本4上.Roslyn取而代之。 –