Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共16 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:这样的定义 方式也行

1楼
cxabc123 发表于:2010/8/19 17:05:00

dim s =string

这种格式也可以

2楼
cxabc123 发表于:2010/8/19 17:15:00

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()
'关

这段代码也可以执行

3楼
cxabc123 发表于:2010/8/19 17:25:00
这种格式看来不规范,但是只要能够自行,那么他的作用不可小看
[此贴子已经被作者于2010-8-19 17:25:07编辑过]
4楼
mr725 发表于:2010/8/19 17:55:00
新鲜哦.......图片点击可在新窗口打开查看
5楼
czy 发表于:2010/8/19 18:23:00

我看人家vb代码这样都写

 

Dim s = "a"
Dim i = 10

6楼
lxl 发表于:2010/8/19 20:57:00

这里要小心了。

在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,必须写完整,原因写在楼下。

有兴趣,又不怕脑袋被弄糊涂的继续往下看)

 


7楼
lxl 发表于:2010/8/19 21:04:00

原因是在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"就会报错

[此贴子已经被作者于2010-8-19 21:23:33编辑过]
8楼
cxabc123 发表于:2010/8/19 22:17:00
其实要的就是这种效果,老大如果早告诉,有些代码就简单多了
[此贴子已经被作者于2010-8-19 22:18:29编辑过]
9楼
lxl 发表于:2010/8/19 22:39:00
以下是引用cxabc123在2010-8-19 22:17:00的发言:
其实要的就是这种效果,老大如果早告诉,有些代码就简单多了
[此贴子已经被作者于2010-8-19 22:18:29编辑过]

非常不推荐 Dim s = 123 缩写,

他等于 Dim s As Object = 123

因为这里进行了装箱(值类型,包装成引用类型 Object)

 

不行你拿1000行数据来对比一下就知道。

1000次装箱拆箱,效率影响很明显

 

 

 

10楼
lxl 发表于:2010/8/19 22:57:00

下面代码的结果值是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%也没人能感觉出来,呵呵

[此贴子已经被作者于2010-8-19 22:57:20编辑过]
共16 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03516 s, 2 queries.