VB.NET'te aşağıdaki gibi bir şey yapmak istiyorum, bu mümkün mü?Bir "tür" argüman olarak geçebilir misiniz?
Function task(value as Object, toType as Type)
Return DirectCast(value, toType)
End Function
VB.NET'te aşağıdaki gibi bir şey yapmak istiyorum, bu mümkün mü?Bir "tür" argüman olarak geçebilir misiniz?
Function task(value as Object, toType as Type)
Return DirectCast(value, toType)
End Function
Evet. System.Type var. Aslında bir Jenerik yapmak isteyebilirsiniz.
Function SomeFunction(Of T)(obj As Object) As T
'' Magic
End Function
Oh doh. C# bugünlerde çok alışkınım. –
Eğer
function task(of myType)(value as myType) as MyType
''stuff
return value
end function
Evet, ama, sizin gereksinimlerine bağlı olarak, herhangi bir tür döküm/dönüştürme yapmak için CType kullanmak isteyebilirsiniz kullanmak istiyorum. CType, geçerli bir tip dönüşümü olduğu sürece çalışacaktır, DirectCast ise 'un toType
türünde olmasını gerektirir. Böyle
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
Çağrı it: -
Mükemmel Yanıt Burada aynı şeyi genel bir işlevdir
BindDropdownToEnum(Of MyClass.MyEnum)(MyRadioButtonListControl)
Eğer * önce nesneyi döküm yok Neden * göndermeden Görev işlevi – Juliet
Bu açık bir çözüm değil mi ?! –