2009-07-02 20 views

Odpowiedz

12

Tak. Istnieje System.Type. Być może jednak chcesz zrobić rodzajowy.

Function SomeFunction(Of T)(obj As Object) As T 
    '' Magic 
End Function 
+0

Oh doh. W dzisiejszych czasach jestem bardzo przyzwyczajony do C#. –

2

chcesz użyć

function task(of myType)(value as myType) as MyType 
    ''stuff 
    return value 
end function 
0

Tak, choć w zależności od potrzeb, może chcesz używać ctype robić żadnych typu odlewania/konwersja. Typ CT będzie działać tak długo, jak istnieje ważna konwersja typu, podczas gdy DirectCast wymaga, aby value był typu toType.

2

Wielki Answer - Tu jest rodzajowy funkcja zrobić to samo:

Public Sub BindListControlToEnum(Of T)(ListCtrl As ListControl) 
    Dim itemValues As Array = System.Enum.GetValues(GetType(T)) 
    Dim itemNames As Array = System.Enum.GetNames(GetType(T)) 
    For i As Integer = 0 To itemNames.Length - 1 
     Dim item As New ListItem(itemNames(i), itemValues(i)) 
     ListCtrl.Items.Add(item) 
    Next 
End Sub 

nazwać to tak:

BindDropdownToEnum(Of MyClass.MyEnum)(MyRadioButtonListControl) 
Powiązane problemy