Let us see
Sub Main
Dim House As Building = New Building("live")
Dim House2 As New Building("live")
End Sub
Public class Building
Public sub New (Name as string)
end sub
End class
The IL generated for the above code is
IL_0001: ldstr "live"
IL_0006: newobj UserQuery+Building..ctor
IL_000B: stloc.0
IL_000C: ldstr "live"
IL_0011: newobj UserQuery+Building..ctor
IL_0016: stloc.1
Building..ctor:
IL_0000: nop
IL_0001: ldarg.0
IL_0002: call System.Object..ctor
IL_0007: nop
IL_0008: nop
IL_0009: ret
From the above it is clear that the IL is same in both cases. Hence, there is no difference in declaring in either way.
I used Dim instead of public as public is not allowed inside a method.