VB.NET では、 と の間に違いはInteger
ありInt32
ますか?
はいの場合、説明してください。
Integer
機能的には、タイプとの間に違いはありませんSystem.Int32
。VB.NETInteger
では、型の単なるエイリアスですSystem.Int32
。
ただし、識別子Int32
とInteger
は完全に同じではありません。 Integer
は常に のエイリアスでSystem.Int32
あり、コンパイラによって理解されます。Int32
ただし、コンパイラでは特別なケースではなく、他の型と同様に通常の名前解決が行われます。そのためInt32
、場合によっては別の型にバインドすることができます。ただし、これは非常にまれです。誰も自分のInt32
型を定義するべきではありません。
これは、違いを示す具体的な再現です。
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
この場合local1
、 とlocal2
は実際には異なる型です。これは、 がInt32
を介してユーザー定義型にバインドされるためSystem.Int32
です。