2009-07-02 3 views
5

VB.NET에서 다음과 같은 작업을하고 싶습니다. 가능합니까?인수로 "유형"을 전달할 수 있습니까?

Function task(value as Object, toType as Type) 

    Return DirectCast(value, toType) 

End Function 
+1

당신은 * 전에 개체를 캐스팅하지 않는 이유를 *받는 보내기 작업 기능? – Juliet

+0

확실한 해결 방법이 아닌가요?! –

답변

12

예. System.Type이 있습니다. 그러나 당신은 실제로 Generic을 원할 수 있습니다.

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

오. 오. 요즘 C#에 익숙 해요. –

2

당신은이

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

예,하지만, 요구 사항에 따라, 당신은 모든 종류의 주조/변환을 할에서는 CType을 사용할 수 있습니다 사용하고 싶습니다. 유효한 유형 변환이있는 한 CType은 작동하지만 DirectCast에서는 valuetoType이어야합니다. 이 같은

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 

전화를 : -

2

다양한 대답이 여기에 동일한 할 수있는 일반적인 기능입니다

BindDropdownToEnum(Of MyClass.MyEnum)(MyRadioButtonListControl) 
관련 문제