Functionally, there is no difference between the types Integer and System.Int32. In VB.NET Integer is just an alias for the System.Int32 type.
The identifiers Int32 and 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 Int32 type.
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 local1 and local2 are actually different types, because Int32 binds to the user defined type over System.Int32.
Functionally, there is no difference between the types
Integer
andSystem.Int32
. In VB.NETInteger
is just an alias for theSystem.Int32
type.The identifiers
Int32
andInteger
are not completely equal though.Integer
is always an alias forSystem.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 forInt32
to bind to a different type in certain cases. This is very rare though; no one should be defining their ownInt32
type.Here is a concrete repro which demonstrates the difference.
In this case
local1
andlocal2
are actually different types, becauseInt32
binds to the user defined type overSystem.Int32
.