Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 没什么空-或者它是空的?_C#_.net_Vb.net_Clr - Fatal编程技术网

C# 没什么空-或者它是空的?

C# 没什么空-或者它是空的?,c#,.net,vb.net,clr,C#,.net,Vb.net,Clr,最近在上一个项目中,我遇到了VB.NET和C#之间的一个特殊区别 考虑以下C#表达式: null <= 2 VB中的nullNothing计算为给定类型的默认值。(有关详细信息,请参阅。) 对于整数比较(编译器将从右侧操作数中假定),Nothing因此将是00还值得一提的是,当与is和IsNot运算符结合使用时,Nothing也用于空检查。对于completelyness:编译器如何处理C#代码(object)null不允许与整数比较,Int32不能为null?我在寻找答案的时候你打了我

最近在上一个项目中,我遇到了VB.NET和C#之间的一个特殊区别

考虑以下C#表达式:

null <= 2

VB中的
null
Nothing
计算为给定类型的默认值。(有关详细信息,请参阅。)


对于整数比较(编译器将从右侧操作数中假定),
Nothing
因此将是
0
<代码>0还值得一提的是,当与is和IsNot运算符结合使用时,Nothing也用于空检查。对于completelyness:编译器如何处理C#代码
(object)null
不允许与整数比较,
Int32
不能为null?我在寻找答案的时候你打了我。你也得到了同样的链接:P@StefanSteinegger:
int
可以隐式转换为
int?
。请参阅:“从普通类型到可空类型的转换是隐式的。”因此,代码
null@Wayne:MSDN search的第一个结果-可能是我的浏览器快捷方式将您带到了帖子;-)
null在LINQPAD中尝试一个表达式-想象null实际上是一个int?谁的值恰好为空。相关问题(尽管不完全相同):随着所有这些奇怪的事情的发生,有时我想,如果我们在<代码> int i/cDe>中简单地声明一个整数,让它成为内存中的任何东西,而不试图给它默认值,或者像C++一样,将它与<代码> null <代码>进行比较,我们会感到不舒服。
Nothing <= 2