Vb.net “与”的区别是什么&引用;字符串变量中什么都没有?

Vb.net “与”的区别是什么&引用;字符串变量中什么都没有?,vb.net,Vb.net,我一直没有使用任何东西将变量初始化为空,但我发现我们也可以使用“”,所以我更改了所有初始变量,以使代码更短、更整洁 但它有相同的输出吗 变量“”和Nothing之间有什么区别 不同之处在于,如果将变量初始化为”,则其值为空字符串。如果将其初始化为Nothing,则其值为Nothing(空对象引用) 您应该根据使用变量的目的,使用适当的值初始化变量。有时那将是什么都没有,其他时间是什么都没有,其他时间是什么都没有,其他时间是什么都没有,其他时间是什么都没有。这完全取决于变量的用途。我假设您在本例中

我一直没有使用任何东西将变量初始化为空,但我发现我们也可以使用“”,所以我更改了所有初始变量,以使代码更短、更整洁

但它有相同的输出吗

变量“”和Nothing之间有什么区别

不同之处在于,如果将变量初始化为
,则其值为空字符串。如果将其初始化为
Nothing
,则其值为
Nothing
(空对象引用)


您应该根据使用变量的目的,使用适当的值初始化变量。有时那将是什么都没有,其他时间是什么都没有,其他时间是什么都没有,其他时间是什么都没有,其他时间是什么都没有。这完全取决于变量的用途。

我假设您在本例中指的是字符串变量。假设你有

Dim myString As String = Nothing
你有什么?您有一个名为
myString
的已声明变量,但实际上它没有任何值-它只是一个占位符,用于表示值的位置。如果您试图在此时使用它,您将得到一个空引用异常,因为这就是:一个空引用。现在让我们假设您有:

Dim myString As String = ""    'Or indeed String.Empty
您现在拥有的是一个定义的变量,它实际上有一个值。空字符串可能意义不大,但它是一个实际值,因此,如果您尝试使用它,将不会再获得null引用异常,因为它不是null引用:它是对有效值的引用


我个人的偏好是始终确保引用类型的变量在声明时正确初始化。使用
Nothing
不会以任何方式进行初始化-默认情况下它们是
Nothing
,因此您不会更改任何内容。对字符串变量使用
String.Empty
(它们在功能上是等效的),这不仅是因为toherwise VS会警告您,如果您在变量设置值之前使用该变量(如果您启用了
选项Strict
,则应该启用该选项),则会出现空引用异常.

我的意思是,我想首先使用一个值为空的变量,使用ex.Dim Name作为String=Nothing来Dim Name作为String=“”