我需要一些帮助来处理我在C#中工作的一个小项目。
这是我的代码:
//TO FETCH DIRECTORY TEST
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads");
int count = dir.GetFiles().Length;
我想要它做的就是查看我的“下载”文件夹中有多少文件。
我遇到了2个问题。
第一个问题是System
这个词用绿色下划线标出“检测到无法访问的代码”。
起初我以为它可能是由我缺少的命名空间引起的,我检查了我的代码并看到我已经有using System.IO;
和using System;
。我认为这两个是目录计数所需要的。
所以我不明白为什么它的下划线绿色。的xD
第二个问题是,当我将这两行代码放入我的项目时,会破坏我的代码的另一部分:
case "switch window":
SendKeys.Send("%{TAB " + count + "}");
count += 1;
break;
我用蓝色下划线标记“使用未分配的局部变量'count'”
为什么获取目录长度的2行代码打破了这一点,我感到非常困惑。
答案 0 :(得分:2)
我们需要看到更多代码才能确定答案......但这里有一些可能会有所帮助的想法。
这会导致第一个错误
if (false)
{
// this code is unreachable... false will never be true.
//TO FETCH DIRECTORY TEST
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads");
int count = dir.GetFiles().Length;
}
第二个错误是因为你在初始化之前使用了计数......就像这样:
int count;
/// ... more code
case "switch window":
SendKeys.Send("%{TAB " + count + "}"); // uninitialized use.
count += 1;
break;
您需要的地方:
int count;
count = 0; // now count has a value.
/// ... more code
case "switch window":
SendKeys.Send("%{TAB " + count.ToString() + "}");
count += 1;
break;
由第一个引起的第二个是明确的 - 如果代码永远不可访问,那么它将永远不会将计数设置为值,因此初始化count。