繁体   English   中英

Vb.net声明和初始化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM