In VB.NET, is there any difference between
Functionally, there is no difference between the types
System.Int32. In VB.NET
Integer is just an alias for the
Integer are not completely equal though.
Integer is always an alias for
System.Int32 and is understood by the compiler.
Int32 though is not special cased in the compiler and goes through normal name resolution like any other type. So it's possible for
Int32 to bind to a different type in certain cases. This is very rare though; no one should be defining their own
Here is a concrete repro which demonstrates the difference.
Class Int32 End Class Module Module1 Sub Main() Dim local1 As Integer = Nothing Dim local2 As Int32 = Nothing local1 = local2 ' Error!!! End Sub End Module
In this case
local2 are actually different types, because
Int32 binds to the user defined type over