2011-12-21 16 views
6

Po kilku typach obiektów w debugerze Visual Studio 2010 dane wyjściowe zawierają odbicie. Co oznacza skrót?Co oznacza widok w nazwie typu w debugerze Visual Studio?

Dim myList as List = a List 
Debug.Print(myList.GetType().ToString() 

Wyjście w okienku bezpośrednim debuggera:

System.Collections.Generic.List`1[System.String]

+0

Po prostu usunięto wszystkie odniesienia do nazw typów, dzięki czemu tytuł jest bardziej niejednoznaczny. Podobało mi się to lepiej wcześniej. – dlras2

+0

, co powiesz na pytanie: "Co to znaczy, gdy w nazwie programu Visual Studio Debugger pojawia się rzutowanie?" – bernie2436

+0

Zastanowiłem się nad tym, ale postanowiłem po prostu je z powrotem przetworzyć (nie zamierzam popełnić przestępstwa.) Po prostu pamiętaj o nazwach typów - o to właśnie chodzi. – dlras2

Odpowiedz

3

To wskazuje na wymiar typu rodzajowego (w tym przypadku, łańcuch) - np List (Of String), łańcuch jest pierwszym elementem (1-indeksowany).

Spróbuj utworzyć SomeClass(Of T as String, U as Integer) i zobacz, co otrzymasz.

Public Class TestGeneric(Of T, U) 
    Public Sub TellType(ByVal Something As T, ByVal SomethingElse As U) 
     Console.WriteLine(Me.GetType()) 
     Console.WriteLine(Something.GetType()) 
     Console.WriteLine(SomethingElse.GetType()) 
    End Sub 
End Class 

Sub Main() 
    Dim MyTestGeneric As New TestGeneric(Of String, Integer) 
    MyTestGeneric.TellType("Test", 3) 
    Console.ReadKey(True) 
End Sub 
+1

Oto artykuł wprowadzający MSDN do generics: http://msdn.microsoft.com/en-us/library/w256ka79(v=vs.80).aspx – dlras2

+0

@ akh2103 Dodałem przykład (untested jak I don ' t mieć VS do ręki) – Basic

+0

Przetestowany i podrasowany. – dlras2

3

Jest to część reprezentacji ciągów generycznych w CLR.

Liczba po znaku zwrotnym (`) wskazuje liczbę ogólnych typów argumentów, które przyjmuje typ. Typy w nawiasach kwadratowych wskazują, w jaki sposób zostały powiązane te ogólne typy argumentów.