Roslyn 准备好迎接 c# 10 了吗?
Posted
技术标签:
【中文标题】Roslyn 准备好迎接 c# 10 了吗?【英文标题】:Is Roslyn ready for c# 10? 【发布时间】:2021-11-08 22:46:36 【问题描述】:这是我的旧代码:
syntaxTrees.AddRange( filesToCompile.ConvertAll( filename => Parse( File.ReadAllText( filename ), filename, CSharpParseOptions.Default.WithLanguageVersion( LanguageVersion.CSharp9 ) ) ) );
似乎更相关的部分:
CSharpParseOptions.Default.WithLanguageVersion( LanguageVersion.CSharp9 )
语言版本似乎还没有 CSharp10 枚举?
【问题讨论】:
你运行的是什么版本的 Visual Studio? Visual Studio 2022 我能够使用 .NET 6 编译我的解决方案,但我的程序也使用内存编译来处理某些事情。这是有效的,但如果我使用 c#10 语言功能(例如文件范围的命名空间 - 我尝试的第一件事),则不会。 【参考方案1】:您需要使用Microsoft.CodeAnalysis.CSharp
4.0.0 及更高版本才能使用 C# 10。第一个非预览版是 4.0.1。
dotnet add package Microsoft.CodeAnalysis.CSharp --version 4.0.1
那么你可以使用LanguageVersion.CSharp10
【讨论】:
这对我有用。你知道它什么时候出预览版吗?我在 2022 年的发布派对上可能有点早了 :) 4.0.1版本已经发布几个小时了nuget.org/packages/Microsoft.CodeAnalysis.CSharp/4.0.1【参考方案2】:LanguageVersion.CSharp10 于 6 月添加,目前在 Microsoft.CodeAnalysis.CSharp
版本 4.0.0 预览版 nuget 构建中可用,最新的是 Version 4.0.0-6.final。
【讨论】:
以上是关于Roslyn 准备好迎接 c# 10 了吗?的主要内容,如果未能解决你的问题,请参考以下文章