有什么区别:
Dim intVal as integer
intVal = 0
Run Code Online (Sandbox Code Playgroud)
和
intVal = nothing
Run Code Online (Sandbox Code Playgroud)
我从MSDN上读到没有任何东西将值设置为0:
来自MSDN:
Public Structure testStruct
Public name As String
Public number As Short
End Structure
Dim ts As testStruct, i As Integer, b As Boolean
ts = Nothing
' The preceding statement sets ts.name to "" and ts.number to 0.
i = Nothing
b = Nothing
' The preceding statements set i to 0 and b to False.
Run Code Online (Sandbox Code Playgroud)
对象引用通常不使用任何内容,如果将其分配给值类型,则使用默认值对其进行初始化.在.NET世界中,默认值只是一个充满零的内存块.因此,分配给nothing的整数将为0,分配给nothing的结构将是填充为零的结构.
空引用是一个特殊引用,它意味着没有引用,实际上表示为具有全零的指针.
在C#中,您可以使用它default(TYPE)来获得相同的结果,它用于将零分配给您想要的任何内容.
字符串是引用类型,如object,因此字符串不会分配给""但是Nothing,字符串不是值类型.
Dim s as String
s = Nothing
Console.WriteLine Object.ReferenceEquals(s, Nothing) ' Will print true
Console.WriteLine Object.ReferenceEquals(s, "") ' Will print false
Run Code Online (Sandbox Code Playgroud)
字符串仍然是引用类型,因此当您将其指定为Nothing时,您将引用设置为零.
| 归档时间: |
|
| 查看次数: |
3800 次 |
| 最近记录: |