代码之家  ›  专栏  ›  技术社区  ›  Piotr Zierhoffer

如何快速编译C#7代码?

  •  4
  • Piotr Zierhoffer  · 技术社区  · 7 年前

    namespace A
    {
        class Test
        {
            public static void Test()
            {                
                int.TryParse("12", out int result);
            }
        }
    }
    

    通常我使用 CSharpCodeProvider CodeDomProvider

    错误CS1644:无法使用功能“声明表达式”,因为它是 不是C#6.0语言规范的一部分

    当然,整个代码确实包含C#7特性,它们使用msbuild/xbuild编译得很好。

    重要提示-我在Mono上运行它,但我没有选择尝试。现在就上网。这可能是一个单一问题,但它似乎是通用的。

    1 回复  |  直到 7 年前
        1
  •  4
  •   svick bala    7 年前

    /langversion:experimental .

    在CodeDOM中,可以通过设置 CompilerParameters.CompilerOptions

    compiler.CompileAssemblyFromSource(
        new CompilerParameters { CompilerOptions = "/langversion:experimental" }, code);
    

    有了这段代码,您的源代码可以在Mono 4.2.1上为我编译。但由于这是该版本编译器中的一个实验性功能,它可能无法完美工作。

    /语言版本:实验 是特定于Mono的,因此此代码可能无法在的其他实现上工作。网