¿Hay alguna diferencia entre Integer e Int32 en VB.NET?
(1)
Funcionalmente, no hay diferencia entre los tipos Integer
y System.Int32
. En VB.NET Integer
es solo un alias para el tipo System.Int32
.
Sin embargo, los identificadores Int32
y Integer
no son completamente iguales. Integer
es siempre un alias para System.Int32
y lo entiende el compilador. Int32
embargo, Int32
no está incluido en el compilador y tiene una resolución de nombres normal como cualquier otro tipo. Por lo tanto, es posible que Int32
enlace a un tipo diferente en ciertos casos. Esto es muy raro sin embargo; Nadie debería estar definiendo su propio tipo de Int32
.
Aquí hay un repro concreto que demuestra la diferencia.
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
En este caso, local1
y local2
son en realidad tipos diferentes, porque Int32
enlaza con el tipo definido por el usuario sobre System.Int32
.
En VB.NET, ¿hay alguna diferencia entre Integer
e Int32
?
En caso afirmativo, explíquelo porfavor.