假设我有以下代码:
infile = new FileInfo(inputFilename);
outfile = new FileInfo(outputFilename);
if (!infile.Exists || !outfile.Exists) {
Console.WriteLine("File missing: " + ???);
}
是否有可能确定哪一个“if语句”不正确? ???
将替换为不存在的文件的文件名。
答案 0 :(得分:6)
为什么不将if
分成两部分?
if (!infile.Exists) {
Console.WriteLine("File missing: " + infile);
}
if (!outfile.Exists) {
Console.WriteLine("File missing: " + outfile);
}
答案 1 :(得分:1)
您可以收集不存在的文件,然后使用该集合打印错误消息。例如:
var missingFiles = new FileInfo[] {inFile, outFile}.Where(f => !f.Exists);
foreach (var missingFile in missingFiles) {
Console.WriteLine("File missing: " + missingFile);
}
答案 2 :(得分:0)
不,不是直接的。但是,你可以写
bool infileExists = infile.Exists;
bool outfileExists = outfile.Exists;
if (!infileExists || !outfileExists) {
Console.WriteLine("File missing: " + infileExists?"Outfile":"Infile");
}
这甚至不需要对财产进行额外评估。