以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 这样的定义 方式也行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7922) |
-- 作者:cxabc123 -- 发布时间:2010/8/19 17:05:00 -- 这样的定义 方式也行 dim s =string 这种格式也可以 |
-- 作者:cxabc123 -- 发布时间:2010/8/19 17:15:00 -- Dim Builder As New
ADOXBuilder dim s =ADOXType.DateTime 这段代码也可以执行 |
-- 作者:cxabc123 -- 发布时间:2010/8/19 17:25:00 -- 这种格式看来不规范,但是只要能够自行,那么他的作用不可小看 [此贴子已经被作者于2010-8-19 17:25:07编辑过]
|
-- 作者:mr725 -- 发布时间:2010/8/19 17:55:00 -- 新鲜哦....... ![]() |
-- 作者:czy -- 发布时间:2010/8/19 18:23:00 -- 我看人家vb代码这样都写
Dim s = "a" |
-- 作者:lxl -- 发布时间:2010/8/19 20:57:00 -- 这里要小心了。 在2.0的编译器下 (VS2005) Dim s 其实是不规范的写法,他是Dim s As Object的缩写 Dim s = 1 \'完全等效于 Dim s As Object = 1
因为s是一个Object类型。所以它能保存你赋值的各种类型。
但是在3.5的编译器下 (vs2008) Dim s As Object就不能缩写成Dim s,必须写完整,原因写在楼下。 (有兴趣,又不怕脑袋被弄糊涂的继续往下看)
|
-- 作者: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()) 升级到VS2008项目的时候就会出错。 因为Dim s = 1 之后 s只能存放Integer 再存放"sdfd"就会报错 [此贴子已经被作者于2010-8-19 21:23:33编辑过]
|
-- 作者:cxabc123 -- 发布时间:2010/8/19 22:17:00 -- 其实要的就是这种效果,老大如果早告诉,有些代码就简单多了 [此贴子已经被作者于2010-8-19 22:18:29编辑过]
|
-- 作者: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次装箱拆箱,效率影响很明显
|
-- 作者:lxl -- 发布时间:2010/8/19 22:57:00 -- 下面代码的结果值是900 如果去掉红字部分 是1100 也就是差不多20%的效率影响
Dim t1 As Integer = Environment.TickCount 不过运行很快的情况下,慢20%也没人能感觉出来,呵呵 [此贴子已经被作者于2010-8-19 22:57:20编辑过]
|