适当的(或不同的)排队依赖方法
本文关键字:排队 依赖 依赖方 方法 | 更新日期: 2023-09-27 18:06:55
这是关于适当的代码样式的问题。假设我有两个方法,如果前一个为假,其中一个不能执行。
我怎样才能正确地编写它(或者如果没有"正确"的方法,那么至少有一个不同的方法),这样我就不必构建像下面这样的树,因为这样的树可能会变得越来越大。
class Client
{
static void Main()
{
if(Connect())
{
if(Fetch())
{
if(Parse())
{
Print();
}
}
}
}
bool Connect() { ... }
bool Fetch() { ... }
bool Parse() { ... }
void Print() { ... }
}
你可以把它包装在一个接受一堆委托的方法中:
public bool AllTrue(params Func<bool>[] methods) {
foreach (var method in methods) {
if (!method())
return false;
}
return true;
}
. .然后这样命名:
if (AllTrue(Connect, Fetch, Parse)) {
Print();
}
这当然比链接逻辑和更漂亮。
不用写多个if条件,你可以在一个if条件中检查所有条件
If (Connect() && Fetch() && Parse())
这里,如果条件首先检查Connect()方法的值,如果它返回false,那么它将不会检查其他条件
在这种情况下,您可以使用
static void Main()
{
if(Connect() && Fetch() && Parse())
{
Print();
}
}
或
static void Main()
{
if(!Connect())
return;
if(!Fetch())
return;
if(!Parse())
return;
Print();
}