【发布时间】:2011-09-27 16:03:09
【问题描述】:
为什么允许我在 VB.NET 中将 Nothing 分配给值类型:
Dim x as Integer = Nothing
但我不允许在 C# 中分配 null:
int x = null;
【问题讨论】:
-
为什么英语中的不定式可以拆分,但拉丁语中的不定式不能拆分?因为英语和拉丁语是不同的语言,有着不同的规则。 C# 和 VB 是相似的——拉丁语和英语也是如此——但一个的规则不是另一个的规则。
-
所以你的意思是 VB 是一种死语言 Eric? :)
-
设置
x = Nothing是令人困惑的,因为第一眼看不清楚相当于x = 0。当Nothing预期为无效值而0- 有效值时,此分配可能会在VB.NET 代码中带来隐含错误和误解。