Foxtable(狐表)用户栏目专家坐堂 → 【关注】定义变量时初始值若用nothing则容易出错。


  共有5520人关注过本帖树形打印复制链接

主题:【关注】定义变量时初始值若用nothing则容易出错。

帅哥哟,离线,有人找我吗?
关键下一秒
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
【关注】定义变量时初始值若用nothing则容易出错。  发帖心情 Post By:2013/5/2 11:40:00 [只看该作者]

比如定义如下:
dim s as string = nothing 
dim ls as list (of string ) = nothing
...
若这样初始化后,在使用 s.contains("xxx") ,ls.contains("xxx") 都会出现找不到对象的错误。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178530 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/2 11:46:00 [只看该作者]

首先,你为何要为它赋值nothing 呢
其次,这个是你人为代码的问题.谁会这样写代码呢?思路就有问题.你不赋值就去执行contains 肯定会报错
如果你非得这样做.那么请事先IF判断一下S是否为 nothing 再执行

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/5/2 13:22:00 [只看该作者]

以下是引用关键下一秒在2013-5-2 11:40:00的发言:
比如定义如下:
dim s as string = nothing 
dim ls as list (of string ) = nothing
...
若这样初始化后,在使用 s.contains("xxx") ,ls.contains("xxx") 都会出现找不到对象的错误。

这个没赋值前,本身就是nothing的,你这个有点多此一举了。你可以试试

dim s as string
s.contains("xxx") ,ls.contains("xxx") 都是无效的。
为了防止这种情况,你应该赋值一个空值
dim s as string = “”
 

 回到顶部
帅哥哟,离线,有人找我吗?
关键下一秒
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:816 积分:6685 威望:0 精华:2 注册:2012/8/23 12:35:00
  发帖心情 Post By:2013/5/2 13:25:00 [只看该作者]

以下是引用jspta在2013-5-2 13:22:00的发言:

这个没赋值前,本身就是nothing的,你这个有点多此一举了。你可以试试

dim s as string
s.contains("xxx") ,ls.contains("xxx") 都是无效的。
为了防止这种情况,你应该赋值一个空值
dim s as string = “”
 
对头,呵呵!能注意就行了。


 回到顶部
帅哥哟,离线,有人找我吗?
don
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/2 13:40:00 [只看该作者]

呵呵,借楼主女施主地方,老夫说下:

一般定义集合 :
Dim Names As New List(Of String) '此处如省略 New ,则后面会报错
Names.Add( "电视机")
...

有时也可不加NEW的,如:
Dim Names As List(Of String) = DataTables("订单").GetUniqueValues("数量 > 0","产品ID")

结论:一般来说,加上 New 应该总没错,因此,老六在帮助文件中应该统一加上  New,以免造成疑惑!
[此贴子已经被作者于2013-5-2 13:41:42编辑过]

 回到顶部