string[] 不为null不能使用索引是个什么意思

asight 2010-11-03 07:30:25
string[] s = Directory.GetDirectories(~);
s不为null引用s[0]报错,下标越界.
...全文
132 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
asight 2010-11-11
  • 打赏
  • 举报
回复
确实可以的,foreach或者for 条件<[].Len 中都是没问题的
ermuzi 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 asight 的回复:]
引用 10 楼 ermuzi 的回复:

调用Directory.GetDirectories()的时候,返回了一个string[]型的数据,是否返回了数据,要根据元素个数来操作。
用foreach,或for来遍历都不会出问题,但如果直接访问元素则可能下标越界。

我就是这么用的
[/Quote]
不可能噻
asight 2010-11-03
  • 打赏
  • 举报
回复
谢谢参与,结贴给分
asight 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ermuzi 的回复:]

调用Directory.GetDirectories()的时候,返回了一个string[]型的数据,是否返回了数据,要根据元素个数来操作。
用foreach,或for来遍历都不会出问题,但如果直接访问元素则可能下标越界。
[/Quote]
我就是这么用的
机器人 2010-11-03
  • 打赏
  • 举报
回复
s[0] 就是指数组中第一个元素(下标从0开始),现在数组是个空。那不就出错。

s 是一个引用是一个Array的实例的引用。
s[0] 是Array中的第一个元素。现在Array里没有任何元素,s[0]当然出 null reference

ermuzi 2010-11-03
  • 打赏
  • 举报
回复
调用Directory.GetDirectories()的时候,返回了一个string[]型的数据,是否返回了数据,要根据元素个数来操作。
用foreach,或for来遍历都不会出问题,但如果直接访问元素则可能下标越界。
asight 2010-11-03
  • 打赏
  • 举报
回复
问题:::只用多个+连接n个字符串,最终编译是一次性到位还是n-1次连接操作?
asight 2010-11-03
  • 打赏
  • 举报
回复
回楼上的,不为null,长度=0没问题
机器人 2010-11-03
  • 打赏
  • 举报
回复
string[] s = Directory.GetDirectories(~);
MessageBox.Show(s.Length.ToString());

数组长度啦~~
asight 2010-11-03
  • 打赏
  • 举报
回复
另外,c#桌面真废物,开processexplorer看下,winform默认代码release版跑起来有9个线程,360扣扣才2跟线程,差别真大
asight 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyi8808 的回复:]

空数组。
string[] s = new string[0]; // 这样 s 也不为 null,但数组的长度为0,s[0]下标越界。
[/Quote]
里面有什么东西呢?一个指针指向0x00 对吧
wuyi8808 2010-11-03
  • 打赏
  • 举报
回复
string[] s = new string[1]; // 要这样 s[0] 下标才不会越界。
winner2050 2010-11-03
  • 打赏
  • 举报
回复
不为null 也可以为空白数组啊。

没有行,你怎么读取得了第一行?
wuyi8808 2010-11-03
  • 打赏
  • 举报
回复
空数组。
string[] s = new string[0]; // 这样 s 也不为 null,但数组的长度为0,s[0]下标越界。

asight 2010-11-03
  • 打赏
  • 举报
回复
顶一个人气...楼下说下 为什么

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧