23

VB.NET では、 と の間に違いはIntegerありInt32ますか?

はいの場合、説明してください。

4

1 に答える 1

35

Integer機能的には、タイプとの間に違いはありませんSystem.Int32。VB.NETIntegerでは、型の単なるエイリアスですSystem.Int32

ただし、識別子Int32Integerは完全に同じではありません。 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です。

于 2013-03-08T06:09:05.053 に答える