gpt4 book ai didi

If..And If...And If 的 C# 结构

转载 作者:行者123 更新时间:2023-11-30 19:17:04 25 4
gpt4 key购买 nike

我使用的是 Visual Studio 2013 Express,我是 Visual C# 的新手。我确信有更好的方法来做我正在尝试的事情,我将不胜感激任何建议。

我正在尝试编写的代码会评估一系列测试,并仅在所有测试 = TRUE 时设置一个标志。我目前正在使用六个嵌套的 if 结构来完成这项工作,虽然它有效,但我正在寻找更清洁、更专业的解决方案。这是示例(在这篇文章中缩短为三个级别):

private const string sDrive = "D:\\";
private const string sFolder = "FTP\\";
private const string sDivFolder = "ABC";
private static bool bSanity = false;

private static void SanityCheck()
{
if (Directory.Exists(sDrive))
{
if (Directory.Exists(sDrive + sFolder))
{
if (Directory.Exists(sDrive + sFolder + sDivFolder))
{
bSanity = true;
}
else
{
Console.WriteLine("FATAL: Div folder doesn't exist.");
}
}
else
{
Console.WriteLine("FATAL: Root folder doesn't exist.");
}
}
else
{
Console.WriteLine("FATAL: Disk drive doesn't exist.");
}
}

最佳答案

主要问题是您是否需要保留与现在相同的错误报告。一般来说,如果需要的话,我认为通过反转案例来处理更简单。这将允许您使用 if/else if 移除嵌套:

private static void SanityCheck()
{
if (!Directory.Exists(sDrive))
{
Console.WriteLine("FATAL: Disk drive doesn't exist.");
}
else if (!Directory.Exists(Path.Combine(sDrive, sFolder))
{
Console.WriteLine("FATAL: Root folder doesn't exist.");
}
else if (!Directory.Exists(Path.Combine(sDrive, sFolder, sDivFolder))
{
Console.WriteLine("FATAL: Div folder doesn't exist.");
}
else
{
bSanity = true;
}
}

如果不需要详细报错,直接查看最底层文件夹即可:

private static void SanityCheck()
{

if (Directory.Exists(Path.Combine(sDrive, sFolder, sDivFolder))
bSanity = true;
else
Console.WriteLine("FATAL: Drive or folder doesn't exist.");
}

关于If..And If...And If 的 C# 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com