为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

你要分清楚语言、编译器和CLR的关系。

语言特性比如扩展方法,这东西时纯粹的属于编译器支持的特性,而CLR并不支持。CLR不支持的这部分都是属于编译器特性,俗称语法糖。

但是CLR支持的仅返回类型不同其他都相同的方法重载,而C#并不支持。CLR支持的这部分属于IL的能力范围,但是C#并没有实现IL所支持的所有特性。


查看完整回答
反对 回复 2018-08-16
  • 1 回答
  • 0 关注
  • 746 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信