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 了吗?的主要内容,如果未能解决你的问题,请参考以下文章

老铁们,准备好迎接自动驾驶了吗?

boost::interprocess 准备好迎接黄金时段了吗? [关闭]

Mono 准备好迎接黄金时段了吗? [关闭]

或将迎接史上最热夏天,你准备好了吗?

一加新机来袭,你准备好迎接一台“性能小怪兽”了吗?

蓄势迎接 Google 谷歌开发者大会:开发者,你准备好了吗?