相关疑难解决方法(0)

如何防止箭头反模式

我对如何最好地将我的代码重构为更具可读性的东西感到困惑.

考虑一下这段代码:

var foo = getfoo();
if(foo!=null)
{
    var bar = getbar(foo);
    if(bar!=null)
    {
        var moo = getmoo(bar);
        if(moo!=null)
        {
            var cow = getcow(moo);
            ...
        }
    }
}
return;
Run Code Online (Sandbox Code Playgroud)

如您所见,需要大量嵌套if块,因为每个嵌套块依赖于先前的值.

现在我想知道如何让我的代码在这方面更清洁一些.

我自己想到的一些选择是:

  • 在每个if子句后返回,这意味着我有多个地方可以保留我的方法
  • 抛出ArgumentNullExceptions,之后我将它们捕获到最后并将return语句放在我的finally子句中(或者在try/catch块之外)
  • 使用标签和 goto:

大多数这些选项对我来说似乎有点"脏",所以我想知道是否有一种很好的方法来清理我创建的这个混乱.

c# design-patterns anti-patterns

51
推荐指数
7
解决办法
5093
查看次数

标签 统计

anti-patterns ×1

c# ×1

design-patterns ×1