[英]Vb.net declaration and initialization
这两种声明和初始化方式之间有什么区别吗?
Dim con as New OracleConnection(connstr)
con=Nothing
Dim con as OracleConnection
con=New OracleConnection(connstr)
con=Nothing
更新:Dim con as OracleConnection = New OracleConnection(connstr)
相当于?
他们没有区别。 但您仍然可以简化声明
Using con As New OracleConnection(connstr)
' other codes here
End Using
Using
语句在Using
自动处理对象。
更新1
这个因为NEW
关键字而直接分配内存:
Dim con as New OracleConnection(connstr) ' declaration and allocating in the memory
con = Nothing ' disposes the object
在提供NEW
关键字之前,这不会分配内存。
Dim con as OracleConnection ' declaration only
con = New OracleConnection(connstr) ' allocates memory
con = Nothing ' disposes the object
VB的Dim foo As New bar
是语法糖和简写:
Dim foo As Bar
foo = New Bar()
从这个意义上说,VB等同于C#的var
关键字(除了没有编译器类型推断):
var foo = new Bar();
请注意,在使用它们之后,您不需要在VB中将局部变量设置为Nothing
,因为它们会在超出范围后自动处理/完成。 抢先将变量设置为Nothing
是VBScript的一种习惯习惯,你需要使COM对象无效以减少它们的引用计数,这样它们就会被处理掉,你不需要在VB.NET中这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.