使用 polyfill 在 .NET Framework 4.8 上运行 C# v8 到 v11 模式匹配功能是一个可靠的想法吗?

问题描述 投票:0回答:2

我很想在基于 .NET Framework 4.8 的解决方案中使用 c# 版本 8 到 11 提供的更高级的模式匹配功能(默认情况下仅支持 c# 7.3)。

我看到现在有自动的polyfilling解决方案可以很容易地实现这一点!在我朝这个方向迈进之前,我想知道这是否是一个可靠的解决方案,或者是否有充分的理由解释为什么这可能会导致我正在构建的软件不稳定和奇怪的行为(Office VSTO 解决方案因此受到 .NET Framework 4.8 的限制)作为尽可能高的版本)。

作为一名对 Visual Studio 2022 及其编译器在后台执行的操作了解有限的开发人员,我对这是否可能导致重大问题没有足够的了解。感谢您分享您的见解!

c# .net pattern-matching
2个回答
3
投票

您很可能仍然需要设置 LangVersion 才能正常工作。这本身就足以启用一些较新的 C# 功能,包括我认为的模式匹配。我没有使用过 PolySharp,但看起来它只是添加了一些类型来启用尽可能多的功能。

为了完成这项工作,编译器必须能够将代码编译为常规 .net 框架代码。 IE。可用的功能将是“语法糖”类型的。某些功能需要运行时支持,除非您更新到较新的运行时,否则这些功能将不可用。所以像通用数学这样的东西将不可用 😢.

官方不支持更改语言版本。但我已经使用最新的 lang 版本和 .Net 4.8 大约三年了,没有遇到任何问题,但我仍然使用 VS 2019。最终这将取决于你规避风险的程度。


0
投票

也许这适合您,它向下兼容.Net Framework 2.0:

FrameworkExtensions.Backports

© www.soinside.com 2019 - 2024. All rights reserved.