在学校里,我主要使用 Java、C 和 Python。现在我正在工作,我一直在使用.Net。有时我必须从事 Visual Basic 项目,这是一次愉快的学习经历,但我似乎有时会被一些事情挂断。我的主要问题之一来自 Visual Basic 使用Nothing
而不是null
在 C# 和 F# 中使用的事实。
Nothing
和,对我来说,除了可以在 Visual Basic 中设置为不可为空的值类型并且该值将设置为其默认值(即整数为 0)null
之外,似乎基本相同。Nothing
在 C# 中,如果将不可为空的值类型设置为null
,则会出现编译时错误。拥有数据类型的默认值,但创建类型Nullable
和设置值以DBNull.Value
使用数据库让我失望。切换到Nothing
from并不直观null
。我查看了在 C# 和 VB 中将字符串设置为 null/Nothing 的 IL 代码,并且每次将字符串设置为 ldnull。那么,为什么 Visual Basic 使用Nothing
而不是null
其他 .Net 语言,有什么根本原因吗?
tl;dr 为什么 Visual Basic 使用Nothing
而不是null
?