我只是想知道两个不同的新对象初始化器之间是否有任何区别,或者它只是语法糖。
所以:
Dim _StreamReader as New Streamreader(mystream)
与...不同:
Dim _StreamReader as Streamreader = new streamreader(mystream)
引擎盖下有什么不同吗?还是他们都一样?你喜欢哪一个?
答案 0 :(得分:14)
在VB.NET中,它们是完全相同的。 As New
变体是规范的。
在VB6中,它们的语义实际上是不同的(除了VB6不允许在声明中赋值的明显事实):As New
变体将创建一个永远不会是Nothing
的对象。相反,运行时将确保在每次访问对象之前始终正确初始化对象。
答案 1 :(得分:2)
这些陈述完全相同。我个人更喜欢“Dim x as New”语法,因为它更简洁。当它没有形成程序差异时,没有理由在同一语句中写入相同的类型名称。它所做的就是让你在键盘上花更多的时间:)
答案 2 :(得分:1)
我不是一个VB人,但据我所知,他们是等同的。根据{{3}}:
如果你没有指定数据类型,那么 变量采用的数据类型 初始化。如果既不是数据类型也不是 默认情况下,初始化程序存在 数据类型是对象数据类型。如果 你同时指定数据类型和 初始化器,数据类型 初始化程序必须可转换为 数据类型。
我不会传递对首选项的评论,因为我不使用VB(除非在回答语句时)。