You*_*sef 14 vb.net casting ctype
我希望能够动态地转换值,只有在运行时才知道类型.像这样的东西:
myvalue = CType(value, "String, Integer or Boolean")
Run Code Online (Sandbox Code Playgroud)
包含类型值的字符串作为参数传递,也从数据库中读取,并将值作为字符串存储在数据库中.
这可能吗?
Dim bMyValue As Boolean
Dim iMyValue As Integer
Dim sMyValue As String
Dim t As Type = myValue.GetType
Select Case t.Name
Case "String"
sMyValue = ctype(myValue, string)
Case "Boolean"
bMyValue = ctype(myValue, boolean)
Case "Integer"
iMyValue = ctype(myValue, Integer)
End Select
Run Code Online (Sandbox Code Playgroud)
它有点hacky但它的工作原理.
这是最简单的方法.我用多种类型测试了它.
Sub DoCast(ByVal something As Object)
Dim newSomething = Convert.ChangeType(something, something.GetType())
End Sub
Run Code Online (Sandbox Code Playgroud)