C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?

阅读《C#高级编程》系列丛书中,介绍C#与.NET的关系,提到C#是语言,.NET是平台(C#不是.NET的一部分),说”.NET支持的一些特性,C#并不支持“,这个可以理解,因为C#只是.NET平台支持的语言中的一种,并且.NET可以直接编写IL程序;但是又说”C#支持的一些特性,.NET并不支持“,这我就不理解,因为C#只能在.NET平台上运行,那C#支持的特性,.NET上不支持,程序是怎么运行的呢?求解!


慕容3067478
浏览 747回答 1
1回答

萧十郎

你要分清楚语言、编译器和CLR的关系。语言特性比如扩展方法,这东西时纯粹的属于编译器支持的特性,而CLR并不支持。CLR不支持的这部分都是属于编译器特性,俗称语法糖。但是CLR支持的仅返回类型不同其他都相同的方法重载,而C#并不支持。CLR支持的这部分属于IL的能力范围,但是C#并没有实现IL所支持的所有特性。
打开App,查看更多内容
随时随地看视频慕课网APP