Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
dim s =string
这种格式也可以
Dim Builder As New
ADOXBuilder
Builder.Open() '打开ADOXBuilder
dim s =ADOXType.DateTime
With Builder.Tables("表A")
.AddColumn("日期" ,s) '增加日期型列
.AddColumn("产品" ,ADOXType.String, 12) '增加字符型列,长度指定为12
.AddColumn("客户" ,ADOXType.String, 20) '增加字符列,长度为20
.AddColumn("数量" ,ADOXType.Integer) '增加整数型列
.AddColumn("备注" ,ADOXType.Text) '增加备注列
End
With
Builder.Close() '关
这段代码也可以执行
我看人家vb代码这样都写
Dim s = "a"
Dim i = 10
这里要小心了。
在2.0的编译器下 (VS2005)
Dim s 其实是不规范的写法,他是Dim s As Object的缩写
Dim s = 1 '完全等效于 Dim s As Object = 1
Output.Show(s.Gettype().ToString())
s = "sdfd"
Output.Show(s.Gettype().ToString())
因为s是一个Object类型。所以它能保存你赋值的各种类型。
但是在3.5的编译器下 (vs2008)
Dim s As Object就不能缩写成Dim s,必须写完整,原因写在楼下。
(有兴趣,又不怕脑袋被弄糊涂的继续往下看)
原因是在3.5编译器下
Dim s有了新的意思。 不再是Dim s As Object的缩写。
Dim s = "123" 等价于 Dim s As String = "123"
Dim s = 123 等价于 Dim s As Integer = 123
Dim s = new SQLCommand() 等价于 Dim s = new SQLCommand()
也就是类型推断功能,根据等号右边的值,确定了左边变量的类型。(以前左边变量是一个Object 类型)
因此,以前的写法
Dim s = 1
Output.Show(s.Gettype().ToString())
s = "sdfd"
Output.Show(s.Gettype().ToString())
升级到VS2008项目的时候就会出错。
因为Dim s = 1 之后 s只能存放Integer 再存放"sdfd"就会报错
非常不推荐 Dim s = 123 缩写,
他等于 Dim s As Object = 123
因为这里进行了装箱(值类型,包装成引用类型 Object)
不行你拿1000行数据来对比一下就知道。
1000次装箱拆箱,效率影响很明显
下面代码的结果值是900 如果去掉红字部分 是1100
也就是差不多20%的效率影响
Dim t1 As Integer = Environment.TickCount
Dim sum As Integer = 123456789
For i As Integer = 0 To 10000000
sum = sum ^ 0.5
Next
Dim t2 As Integer = Environment.TickCount
Output.Show(t2-t1)
不过运行很快的情况下,慢20%也没人能感觉出来,呵呵