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)
题 :
除非另行指定,否则字符串将设置为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)
你想要哪一个取决于你在做什么
| 归档时间: |
|
| 查看次数: |
5567 次 |
| 最近记录: |