2013-03-08 26 views
19

Czy w VB.NET istnieje różnica między Integer a Int32?Czy jest jakaś różnica między Integer i Int32 w VB.NET?

Jeśli tak, proszę wyjaśnić.

+0

@MitchWheat ... Google udzielił mi mylących odpowiedzi. Tak więc, pomyślałem o tym tutaj. Wiem, jak szukać. – Vikram

+2

OK, Int32 i Integer są różne. Które zalecałbyś używać w projektach, w których nie ma wcześniej istniejącego standardu - i dlaczego? Przypuszczalnie ta myśl była za pytaniem @ Vikrama. – finch

Odpowiedz

30

Funkcjonalnie nie ma różnicy między typami Integer i System.Int32. W języku VB.NET Integer to tylko alias dla typu System.Int32.

Identyfikatory Int32 i Integer nie są jednak zupełnie takie same. Integer jest zawsze aliasem dla System.Int32 i jest zrozumiały dla kompilatora. Int32 Mimo że kompilator nie jest specjalnie obudowany i przechodzi przez zwykłe rozpoznawanie nazw jak każdy inny typ. Dlatego w niektórych przypadkach może się zdarzyć, że Int32 będzie wiązał się z innym typem. Jest to jednak bardzo rzadkie; nikt nie powinien definiować swojego własnego typu.

Oto konkretne repro, które pokazuje różnicę.

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 

W tym przypadku local1 i local2 są rzeczywiście różne typy, ponieważ Int32 wiąże się dla określonego rodzaju w ciągu System.Int32.

+1

@JaredPar, Dziękuję za wyjaśnienia i wielkie dzięki za nie umieszczenie komentarza w stylu "złamane Google'a?" lub coś. :) – Vikram

+2

@MitchWheat i googled pytanie i nie znalazłem odpowiedniego wyjaśnienia. Większość linków mówi "nie ma różnicy", co jest nieprawidłowe. Jest jedna odpowiedź na stronie internetowej msdn, która miała przyzwoite wyjaśnienie, ale była dość daleko w moich wynikach Google. – JaredPar

+1

Nie ma różnicy. Twoja odpowiedź brzmi: "Fakcyjnie nie ma różnicy między typami" –

Powiązane problemy