重构方法的最佳实践

use*_*174 7 .net c# refactoring

我想知道重构代码的最佳实践是什么样的:

应该在哪里设置退出标准,以及最佳做法是什么

    private static bool Foo()
    {
        bool result = false;

        if (DoMehod1())
        {
            if (DoMehod2())
            {
                if (DoMethod3())
                {
                    result = true;
                }
                else
                {
                    Console.WriteLine("DoMethod3 Failed");
                }
            }
            else
            {
                Console.WriteLine("DoMethod2 Failed");
            }
        }
        else
        {
            Console.WriteLine("DoMethod1 Failed");
        }
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

mqp*_*mqp 11

该代码的最佳结构而不改变它的作用是:

private static bool Foo()
{
    if (!DoMethod1())
    {
        Console.WriteLine("DoMethod1 Failed");
        return false;
    }

    if (!DoMethod2())
    {
        Console.WriteLine("DoMethod2 Failed");
        return false;
    }

    if (!DoMethod3())
    {
        Console.WriteLine("DoMethod3 Failed");
        return false;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

  • 我不知道"不输出所有结果"的意思,但这在功能上与帖子中的代码完全相同. (4认同)
  • 我同意代码可能是错误的,但试图阅读意图并修复一个名为`Foo`的无上下文方法的设计,调用名为`DoMehod1`的函数,有点像黑暗一样. (3认同)