不管是vb还是c# 文本框TextBox2.Text一定是字符串,所以不管你使用gettype,typeof,is 获取的类型都是String,不可能是数值型的。你可以是用强制转换来判断,能转换为decimal的,继续,不能转换的,就捕获错误,然后弹出错误框。
宁都ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
try{
testClass.Chinese = Convert.ToDecimal(TextBox2.Text)
}
catch{//弹出错误框}
如果是要判断引用类型可以用TypeOf来判断
Dim s = "666"
If TypeOf (s) Is String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
如果不知道是否是引用类型,可以这样判断:
Dim s = 666
If VarType(s) = VariantType.String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
或者:
Dim s = 666
If s.GetType = "".GetType Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
如果你在Visual Studio里面,直接用鼠标碰一下那个变量的名字,会直接显示它的类型(由VS推断,推断不出来就看不到了)
如果是编译方面的,模糊变量会的类型是由编译器在编译的时候直接推断的
Dim c As Control
For Each c In Me.Controls
Debug.WriteLine(c.Name ":" TypeName(c))
Next
ado.net读数据库进内存是DataTable,单元格内容是object类型,因此你必须自己转换,没有其他捷径。不过考虑到为null的情况以及大量的转换,是单调重复的工作,不妨针对每个类型写个转换函数,比如针对string的,bool的,等等。甚至还可以有泛型版本等。另外.net里面的可空类型就是用来解决数据库这种空值场景的,不妨试试。
这个问题可以用注册表解决。
Function getOpenCommand(fileExt As String) as String
Dim fileType as String, openCommand as String
fileExt = "." + fileExt
'取得文件扩展名在注册表里的文件类型名称
'比如.zip的类型名称一般是zipfile
fileType = 读取注册表的classes_root下的子键(fileExt)的默认键值
'取得打开这种文件的程序
openCommand = 读取注册表的classes_root下的子键(fileType + "\shell\open\command")的默认键值
Return getOpenCommand
End Function
读取注册表的HKEY_CLASSES_ROOT下的子键的默认键值的方法可以在网上搜索到。
这样getOpenCommand("doc")就可以得到一个字符串(包括引号):
"C:\Program Files\Word\word.exe" "%1"
这里只需要用Spilt函数把C:\Program Files\Word\word.exe分离出来就好了