这是关于正确代码样式的问题。假设我有几种方法,如果前一种方法是假的,就无法执行。
如何正确地编写它(或者如果没有"正确的"方法,那么至少是另一种方法),这样我就不必像下面那样构建这样的树了可能会变得越来越大。
class Client
{
static void Main()
{
if(Connect())
{
if(Fetch())
{
if(Parse())
{
Print();
}
}
}
}
bool Connect() { ... }
bool Fetch() { ... }
bool Parse() { ... }
void Print() { ... }
}
答案 0 :(得分:0)
你可以将它包装在一个接受一堆委托的方法中:
public bool AllTrue(params Func<bool>[] methods) {
foreach (var method in methods) {
if (!method())
return false;
}
return true;
}
..并称之为:
if (AllTrue(Connect, Fetch, Parse)) {
Print();
}
当然,这比链接逻辑AND更为漂亮。
答案 1 :(得分:0)
不是编写多个if条件,而是可以在单个if条件下检查所有条件
If (Connect() && Fetch() && Parse())
这里,如果条件首先检查Connect()方法的值,如果它返回false,那么它将不会检查其他条件。
答案 2 :(得分:0)
在这种情况下,您可以使用
static void Main()
{
if(Connect() && Fetch() && Parse())
{
Print();
}
}
或者
static void Main()
{
if(!Connect())
return;
if(!Fetch())
return;
if(!Parse())
return;
Print();
}