这是在vb.net中初始化null的字符串的最佳方法

3 .net vb.net string initialization

我们可以通过以下方式声明和初始化string变量vb.net:

 Dim str1 As String = ""
 Dim str2 As String = Nothing
 Dim str3 As String = vbNullString
Run Code Online (Sandbox Code Playgroud)

题 :

  • 哪一个是最好的编程实践?
  • 这三种方法有什么区别?

Mat*_*lko 7

除非另行指定,否则字符串将设置为Nothing,因此无需像这样初始化它:

Dim s As String = Nothing 
Run Code Online (Sandbox Code Playgroud)

因为这和

Dim s As String
Run Code Online (Sandbox Code Playgroud)

您可能希望稍后在代码中设置它,而不是在初始化时设置它,

vbNullString 是VB6天的结转,功能相当于 Nothing

空白字符串("")和String.Empty等效字符.


有人说String.Empty有一点性能优势,但我没有看到任何证据.

注意:这两者产生的IL 不同的:

"" 生产:

IL_0001:  ldstr      ""
Run Code Online (Sandbox Code Playgroud)

String.Empty 生产:

IL_0001:  ldsfld     string [mscorlib]System.String::Empty
Run Code Online (Sandbox Code Playgroud)

所以回答你的问题:

Dim str1 As String = "" 'Initialises as blank string same as String.Empty
Dim str2 As String = Nothing 'Same as Dim str2 As String
Dim str3 As String = vbNullString 'Same as previous line but deprecated so avoid
Run Code Online (Sandbox Code Playgroud)

所以如果你想要一个空字符串,你应该使用以下内容

Dim s As String = ""
Run Code Online (Sandbox Code Playgroud)

如果你想要一个Null(Nothing)字符串,则以下内容:

Dim s As String
Run Code Online (Sandbox Code Playgroud)

你想要哪一个取决于你在做什么