什么是VB.NET中对象声明中(As)和(=)之间的区别

时间:2011-06-02 08:26:19

标签: vb.net declaration

我可以像这样创建一个新对象:

Dim sqlconn As New SqlClient.SqlConnection(cs)

或者像这样:

Dim sqlconn = New SqlClient.SqlConnection(cs)

有什么区别?既然两者都适合我!

1 个答案:

答案 0 :(得分:13)

第一个是简短形式:

Dim sqlconn As SqlClient.SqlConnection = New SqlClient.SqlConnection(cs)

第二个取决于您使用的VB版本。在VB 7和VB 8中它与:

相同
Dim sqlconn As Object = New SqlClient.SqlConnection(cs)

在VB 9中引入了类型推断,因此编译器将从赋值中推断出类型并生成与第一个相同的代码。

类型推断要求选项Option Infer设置为on。这是默认设置,但如果您从旧版本迁移项目,则可能会关闭。