以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【关注】定义变量时初始值若用nothing则容易出错。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=32431)

--  作者:关键下一秒
--  发布时间:2013/5/2 11:40:00
--  【关注】定义变量时初始值若用nothing则容易出错。
比如定义如下:
dim s as string = nothing 
dim ls as list (of string ) = nothing
...
若这样初始化后,在使用 s.contains("xxx") ,ls.contains("xxx") 都会出现找不到对象的错误。


--  作者:Bin
--  发布时间:2013/5/2 11:46:00
--  
首先,你为何要为它赋值nothing 呢
其次,这个是你人为代码的问题.谁会这样写代码呢?思路就有问题.你不赋值就去执行contains 肯定会报错
如果你非得这样做.那么请事先IF判断一下S是否为 nothing 再执行

--  作者:jspta
--  发布时间: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 = “”
 

--  作者:关键下一秒
--  发布时间: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
--  发布时间: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编辑过]