一个关于Back按钮的代码的问题(点击该Back按钮能返回到上一级文件夹)

F_Ten 2016-09-05 04:08:50
这是一个显示文件或文件夹的列表视图的窗体应用程序,其中有个Back按钮

该按钮代码内容如下:

private System.Collections.Specialized.StringCollection folderCol;

private void buttonBack_Click(object sender, EventArgs e)
{
if (folderCol.Count > 1)
{
PaintListView(folderCol[folderCol.Count - 2].ToString());
folderCol.RemoveAt(folderCol.Count - 1);
}
else
{
PaintListView(folderCol[0].ToString());
}
}

其中这个if这段是什么意思呢?
foldCol.Count > 1说明了什么。
folderCol.Count 减去 一个数又说明了什么。 (苦逼的新手/(ㄒoㄒ)/求指导。)
...全文
281 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
F_Ten 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 Poopaye的回复:
目测folderCol应该是个堆栈形式的数据结构,存放的的是各个层级的路径,例如: [0] => "D:\" [1] => "D:\a\" [2] => "D:\a\b\" folderCol.Count > 1 表示当前目录不是顶层目录 比如上面的例子有3个元素,当前目录是D:\a\b\ 那么要返回上层目录,就把最后一个元素删除,然后让界面显示-1之后的路径
噢懂了懂了,谢啦。 count-1是表示的是物理内存中的顺序,要返回上一级就还要减去一个1,应该是这样了。
F_Ten 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 Poopaye的回复:
目测folderCol应该是个堆栈形式的数据结构,存放的的是各个层级的路径,例如: [0] => "D:\" [1] => "D:\a\" [2] => "D:\a\b\" folderCol.Count > 1 表示当前目录不是顶层目录 比如上面的例子有3个元素,当前目录是D:\a\b\ 那么要返回上层目录,就把最后一个元素删除,然后让界面显示-1之后的路径
好像懂了点,但是这个PaintListView(folderCol[folderCol.Count - 2].ToString() 减2是干嘛呢,讲道理不是-1就能返回上一层了么
Poopaye 2016-09-06
  • 打赏
  • 举报
回复
因为数组下标从0开始 -1是最后一个元素,也就是当前目录 -2就是上一层目录
Poopaye 2016-09-05
  • 打赏
  • 举报
回复
目测folderCol应该是个堆栈形式的数据结构,存放的的是各个层级的路径,例如: [0] => "D:\" [1] => "D:\a\" [2] => "D:\a\b\" folderCol.Count > 1 表示当前目录不是顶层目录 比如上面的例子有3个元素,当前目录是D:\a\b\ 那么要返回上层目录,就把最后一个元素删除,然后让界面显示-1之后的路径

111,128

社区成员

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

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

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