![]() |
1
42
发生了两件事:
1) 编译器将“null”不视为null
参考
价值
... 它需要转换为的任何类型的空值。如果是
2) 装箱可为null的类型得到CLR本身的特殊处理。这与您的第二个示例有关:
编译器将以与不可为null的类型值不同的方式对任何可为null的类型值进行装箱。如果值不为null,则结果将与将相同的值装箱为不可为null的类型值相同-因此
这是在CLR v2周期的后期,应社区的请求引入的。 这意味着没有“装箱的可空值类型值”这样的东西。 |
![]() |
2
2
你说得对:
|
![]() |
3
0
我也在问自己同样的问题,我也希望有一些隐式运算符
c代码:
IL代码(使用LINQPad 5生成):
|
![]() |
Karl · 如何引发PrintPage的事件? 2 年前 |
![]() |
Daniel · LINQ从列表的dataTable中提取部分匹配 2 年前 |
![]() |
limelatte · 如何在datagridview中屏蔽特定列? 3 年前 |
![]() |
Orsi · 选择嵌套列表的最大值和最小值。网 3 年前 |
![]() |
D T · 如何为Excel Com设置公式? 3 年前 |
![]() |
Lenin · 将数组中的每个元素与另一个数组中的相应元素相乘 3 年前 |