如何重构顺序ifs?

die*_*rre 2 c# refactoring

我写了这段代码.这真的很难看.我想重构一下.我必须回来一个object[].我在考虑使用一个bool值来检查我是否必须继续调用其他方法并进行最终object[]创建.

private object[] TrasferisciSingoloFile(some parameters...)
{
    Result result = new Result;

    result = FTPRename(some parameters...);
    if (result.error)
    {
        result.SetError("Some Problem 1");
        object tip = new object[] { par as ThreadCounterManager, result };
        return (object[])tip;
    }

    result = FTPDownloadAndCopy(some parameters...);
    if (result.error)
    {
        result.SetError("Some Problem 2");
        object tip = new object[] { par as ThreadCounterManager, result };
        return (object[])tip;
    }

    result = FTPMove(some parameters...);
    if (result.error)
    {
        result.SetError("Some Problem 3");
        object tip = new object[] { par as ThreadCounterManager, result };
        return (object[])tip;
    }

    result = FTPDelete(some parameters...);
    if (result.error)
    {
        result.SetError("Some Problem 4");
        object tip = new object[] { par as ThreadCounterManager, result };
        return (object[])tip;
    }

    object tip1 = new object[] { par as ThreadCounterManager, result };

    return (object[])tip1;
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*ano 6

让FTPXXXX套件的所有功能在发现错误时抛出异常,因此您可以在catch(){}块中捕获并返回错误一次.可以使用您在提出异常时提供的消息来修饰"某些问题xxxx消息".