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

发布于 2022-09-12 01:21:07 字数 942 浏览 35 评论 0

看这段示例

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;
}

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文