c# - C# 中的一般多返回语句问题

标签 c# return

如果我不需要 hit block2,如何返回值。

有没有道理?我想我不应该使用 multi return,但我不能用 break 代替它。 没有可以中断或继续的封闭循环

public EnResult MyFun()
{
    bool bRet = default;

    // block1 . higher priority than block2.
    if (true)
    {
    // if bRet = true_1, not need hit block2. That's why I want to nested my code with multi *return*
        return bRet = true_1;  
    }
    else
    {
        // do nothing
    }

    // block2
    if (true)
    {
        return bRet = true_2;
    }
    else
    {
        // do nothing
    }

    return bRet;
}

public enum EnResult
{
    true_1,
    true_2,
    false_1,
    false_2,
    default,
}

最佳答案

每个方法使用多个返回语句根本不是糟糕的编码风格。在 C 中限制自己使用一个 return 语句是有意义的,在 C 中您可能需要 goto 一些将释放指针等的常见清理代码,然后返回您存储在变量中的值。但在 C# 中,这不是必需的。

我一直在编写带有多个返回语句的方法。我宁愿阅读一个使用多个返回语句编写且逻辑流程清晰的方法,也不愿阅读一个使用一个返回语句编写且逻辑有些困惑的方法。

关于c# - C# 中的一般多返回语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458142/

相关文章:

c# - 从仅系统托盘的应用程序创建工具提示

c# - 从.net库读取文本文件资源

java - 返回传递的字符串的 double 值

c++ - 如何使用虚函数返回指向基类的指针?

Mysql不选择空值

c# - 如何在 LINQ 中进行外部连接?

c# - 如何在新流程中启动第二个项目的新实例

c# - Twilio 消息发送在 ASP .NET 中不起作用

python - 处理 urllib2 返回的 badstatusline(line)?

java - 对于 public static int 我必须返回什么?