我很乐意使用C#版本8到11在基于.NET Framework 4. 8的解决方案中提供的更高级的模式匹配功能(默认情况下只能升级到C#7. 3)。
我看到现在有自动polyfilling solutions来实现这一点非常容易!在我开始这个方向之前,我想知道这是否是一个坚实的解决方案,或者是否有一个很好的理由,为什么这可能会导致不稳定和怪异的行为,我正在建设的软件(Office VSTO解决方案,因此限制.NET Framework 4.8作为最高可能的版本)。
作为一个对Visual Studio 2022及其编译器在后台执行的操作了解有限的开发人员,我不知道这是否可能导致重大问题。感谢您分享您的见解!
1条答案
按热度按时间b4lqfgs41#
您很可能仍然需要设置LangVersion来使其工作。这本身就足以启用一些较新的c#特性,包括我认为的模式匹配。我没有使用PolySharp,但它看起来只是添加了一些类型来启用尽可能多的特性。
要使此工作,编译器必须能够将代码编译为常规的. NETFramework代码。IidoEe.可用的特性将是“语法糖”类的。一些特性将需要运行时支持,并且将不可用,除非你更新到一个较新的运行时。所以像通用数学这样的东西将不可用😢。
官方不支持更改langversion,但我在.Net 4.8上使用最新的lang版本已经三年了,没有遇到任何问题,但我仍然使用VS 2019,最终这将取决于你有多厌恶风险。