百科问答小站 logo
百科问答小站 font logo



为什么微软的编程语言C# F#的编译器要那么多黑科技? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

nullable的编译器处理模式,在C#规范里面有明确的说明。

参见C#规范6.1.5节:

6.1.5 null 文本转换

从 null 文本到任何可以为 null 的类型存在隐式转换。这种转换产生可以为 null 的给定类型的 null 值(第 4.1.10 节)。

事实上关于nullable类型在编译器里面还有一大堆的特殊处理模式。


我想你的意思是为什么C#要定义这么多规范,而不是把这些逻辑交给用户自己来实现,因为C#是一种工程性的语言,其设计出来就是让程序员直接用来写大型软件的,而不是创造模式出来再用的。所以C#有大量的规范要求编译器的行为。




  

相关话题

  常说「Java 在虚拟机中运行」,请问这个虚拟机可以视为 Java 语言的解释器吗? 
  怎么看待 “C#已经没落” 这种说法? 
  c# 的 装箱 和 拆箱 成本有多高? 
  为什么微软中国经常被人调侃为 「猪队友」? 
  Build 2018 开发者大会上发布的 .NET Core 3.0 规划蓝图透露了哪些信息? 
  如果苹果、谷歌、微软打算毁灭世界会怎样? 
  为什么学习编程第一课要学习输出"hello, world"?这是谁规定的? 
  谷歌允许员工申请永久远程办公,对于互联网企业来讲,推行远程办公有哪些机会和挑战? 
  微软宣布 Windows 11 全部免费升级,还有哪些值得关注的信息? 
  如何看待收购动视暴雪成微软史上最大收购,微软真正看中的是什么? 

前一个讨论
知乎上三位大牛“温赵轮”有什么离奇的身世?
下一个讨论
WPF中如何在Parallel.For中利用Dispatcher.Invoke实时更新进度条?





© 2025-05-19 - tinynew.org. All Rights Reserved.
© 2025-05-19 - tinynew.org. 保留所有权利