适当的(或不同的)排队依赖方法

本文关键字:排队 依赖 依赖方 方法 | 更新日期: 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();
}