我们看看下面两种定义思路方法能看出他们区别吗?
Dim tB1 As Byte
Dim tB2 As Byte = {}
这两种都是定义个字节且里都没有元素
不过下面两句话就能看出区别了
Debug.Pr(tB1 Is Nothing)
Debug.Pr(tB2 Is Nothing)
第句得到结果是True第 2局得到结果是False介绍说明tB1是但没有化过等价于NothingtB2是虽然没有元素但是化过和Nothing不等价你可以访问tB2其他属性如Length得到是0表明是个空而访问tB1其他属性如Length就会报错
空和未化在很多地方还是有区别
例如:
Debug.Pr(.Text.Encoding.Default.GetString(tB1))
Debug.Pr(.Text.Encoding.Default.GetString(tB2))
虽然tB1和tB2中都没有元素但是由于tB1没有化系统会抛出个异常而tB2虽然没有元素但是表示个0元素系统不会抛出异常返回个空串
从这个能看出来Nothing和0元素还是有区别这个是我们容易忽视地方
出处:http://grenet.cnblogs.com/
最新评论