In VB.NET they are identical. The As New variation is canonical.
In VB6, their semantics were actually different (as opposed to the obvious fact that VB6 did not allow assignments in declarations): the As New option would create an object that could never be Nothing . Rather, the runtime ensures that the object has always been correctly initialized before each access to it.
Konrad Rudolph
source share