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

时间:2014-06-05 10:22:02

标签: c# styling code-formatting

这是关于正确代码样式的问题。假设我有几种方法,如果前一种方法是假的,就无法执行。

如何正确地编写它(或者如果没有"正确的"方法,那么至少是另一种方法),这样我就不必像下面那样构建这样的树了可能会变得越来越大。

class Client
{
    static void Main()
    {
        if(Connect())
        {
            if(Fetch())
            {
                if(Parse())
                {
                    Print();
                }
            }
        }
    }

    bool Connect() { ... }

    bool Fetch() { ... }

    bool Parse() { ... }

    void Print() { ... }
}

3 个答案:

答案 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();
}