1-有扩展名,依据扩展名判断(这个简单)
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站制作、成都网站建设,塑造企业网络形象打造互联网企业效应。
2-没有扩展名,比如给你个图片文件image,文件没有扩展名,可以通过以下方式进行判断,但同时如果确定是图片且系统支持的类型,则无需关心文件类型,直接读取到Image就可以,系统也是依据以下的方式判断
1.JPEG【判断文件开始2字节与结束2字节】
- 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识)
- 文件结束标识 (2 bytes): $ff, $d9 (EOI)
2.TGA
- 未压缩的前5字节 00 00 02 00 00
- RLE压缩的前5字节 00 00 10 00 00
3.PNG
- 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
4.GIF
- 文件头标识 (6 bytes) 47 49 46 38 39(37) 61
G I F 8 9 (7) a
5.BMP
- 文件头标识 (2 bytes) 42 4D
B M
6.PCX
- 文件头标识 (1 bytes) 0A
7.TIFF
- 文件头标识 (2 bytes) 4D 4D 或 49 49
8.ICO
- 文件头标识 (8 bytes) 00 00 01 00 01 00 20 20
9.CUR
- 文件头标识 (8 bytes) 00 00 02 00 01 00 20 20
10.IFF
- 文件头标识 (4 bytes) 46 4F 52 4D
F O R M
11.ANI
- 文件头标识 (4 bytes) 52 49 46 46
R I F F
Dim c As Control
For Each c In Me.Controls
Debug.WriteLine(c.Name ":" TypeName(c))
Next
如果你在Visual Studio里面,直接用鼠标碰一下那个变量的名字,会直接显示它的类型(由VS推断,推断不出来就看不到了)
如果是编译方面的,模糊变量会的类型是由编译器在编译的时候直接推断的
如果是要判断引用类型可以用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
不管是vb还是c# 文本框TextBox2.Text一定是字符串,所以不管你使用gettype,typeof,is 获取的类型都是String,不可能是数值型的。你可以是用强制转换来判断,能转换为decimal的,继续,不能转换的,就捕获错误,然后弹出错误框。
try{
testClass.Chinese = Convert.ToDecimal(TextBox2.Text)
}
catch{//弹出错误框}