使用IF-ELSE存在很多重复分支代码的优化?

新手上路,请多包涵

看这段示例

Func(arg)
{
    var result = "结果: ";
    var a = TryGetA(arg);
    if(a != null)
    {
        result += a;
        var b = TryGetB(a, arg);
        if(b != null)
        {
            result += b;
            var c = TryGetC(b, arg);
            if(c != null)
                return result + c;
            else
                return result + " 获取C失败!";
        }
        else
            return result + " 获取B失败!";
    }
    else
        return result + " 获取A失败!";
}

可以看到代码中存在大量的重复的else块
虽然可以反向if解开嵌套

Func(arg)
{
    var result = "结果: ";
    var a = TryGetA(arg);
    if(a == null) return result + " 获取A失败!";
    result += a;
    var b = TryGetB(a, arg);
    if(b == null) return result + " 获取B失败!";
    result += b;
    var c = TryGetC(b, arg);
    if(c == null) return result + " 获取C失败!";
    return result + c;
}

但是并没有什么改善
有什么更好的方法可以使这些重复的分支代码变得统一且易于维护?

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进