网站建设方案书ppt,网站制作公司技术部门,开商城网站多少钱,东莞网站设计早在本月12日#xff0c;微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的文章#xff0c;介绍了很多C# 8.0的新特性。不过本文主要讨论的并不是C# 8.0的新特性#xff0c;而是存在于这篇文章中的一段文字#xff1a;Most of the C# 8.0 language features will ru… 早在本月12日微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的文章介绍了很多C# 8.0的新特性。不过本文主要讨论的并不是C# 8.0的新特性而是存在于这篇文章中的一段文字Most of the C# 8.0 language features will run on any version of .NET. However, a few of them have platform dependencies.Async streams, indexers and ranges all rely on new framework types that will be part of .NET Standard 2.1. As Immo describes in his post Announcing .NET Standard 2.1, .NET Core 3.0 as well as Xamarin, Unity and Mono will all implement .NET Standard 2.1, but .NET Framework 4.8 will not. This means that the types required to use these features won’t be available when you target C# 8.0 to .NET Framework 4.8.这里的文字说的是文中所介绍的绝大部分C# 8.0的新特性都可以在任何版本的.NET上使用唯独有个别的功能需要在特定版本的.NET上才能使用。比如Async streamsindexers and ranges这些特性都需要依赖于由.NET Standard 2.1引入的新类型根据Immo在他的博客中所述.NET Core 3.0、Xamarin、Unity以及Mono都会实现.NET Standard 2.1而.NET Framework 4.8却不会。这也就意味着这些C# 8.0的新特性无法在目标框架为.NET Framework 4.8的情况下使用也就是说这些C# 8.0的新特性无法在经典的.NET环境中使用。如此看来貌似与以前展示的.NET平台架构有所出入因为新版本的.NET Framework并不实现.NET Standard 2.1。我在2018年3月24日上海MVP线下技术交流活动中分享过C#7.x的新特性并且做了一场演示展示了将C# 7.2 target到.NET Framework 2.0的工程并在2.0的工程中使用C# 7.2的语法特性进行开发。由此看来这是完全可行的前提是我所使用的开发库必须是可基于CLR 2.0运行的。你会发现即使我使用C# 7.2我仍然无法在一个2.0的工程中使用async/await的异步框架原因是async/await所依赖的TPL只能运行在4.0的CLR上因此C# 7.2可以target到.NET Framework 2.0但是有一部分语言特性无法使用这种情况同样发生在上面的C# 8.0上。据此分析.NET Standard 2.1引入新的API比如Span需要修改.NET的公共语言运行时Common Language RuntimeCLR这样的修改对于.NET Core、Xamarin、Unity以及Mono这些重新设计的框架来说应该更为方便而对于经典.NET Framework这种具有历史特点的框架来说或许并不那么直接容易所以.NET团队推后了经典.NET CLR的变更计划由此也就推后了.NET Framework对于C# 8.0新特性的支持计划因此.NET Framework 4.8仍然只支持.NET Standard 2.0部分C# 8.0的新特性无法使用。经典.NET Framework的公共语言运行时CLR在整个.NET的发展进程中也就只出现过4个版本1.0/1.1/2.0/4.0。 1.0和1.1基本上可以忽略不计了估计现在已经没有什么项目在用这两个版本相对应的.NET Framework了。让大家最为熟知的是.NET CLR 2.0和4.0的版本CLR 2.0随着Visual Studio 2005的发布直到Visual Studio 2010的CLR 4.0一共有5年时间而2010年随着Visual Studio 2010一起发布的.NET CLR 4.0至今也有近9年的历史了。随着.NET Standard API的不断扩展相信不久的将来我们会迎来一次CLR的版本升级使得经典.NET Framework能够更好地支持.NET Standard API以及新的编程语言特性契合整个.NET的平台架构。原文地址:http://sunnycoding.cn/2018/11/27/csharp8-net-framework-4-8-and-net-standard-2-1-side-note/.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com