新{object} vs {object} = new {object}

Nat*_*n W 6 .net vb.net

我只是想知道两个不同的新对象初始化器之间是否有任何区别,或者它只是语法糖.

所以是:

Dim _StreamReader as New Streamreader(mystream)
Run Code Online (Sandbox Code Playgroud)

与...不同

Dim _StreamReader as Streamreader = new streamreader(mystream)
Run Code Online (Sandbox Code Playgroud)

引擎盖下有什么不同吗?还是他们都一样?你更喜欢哪一个?

Kon*_*lph 14

在VB.NET中,它们是相同的.该As New变体是规范的.

在VB6中,它们的语义实际上是不同的(除了VB6不允许在声明中赋值的明显事实):As New变体将创建一个永远不会的对象Nothing.相反,运行时将确保在每次访问对象之前始终正确初始化对象.