冗余控制流跳转语句

本文关键字:语句 控制流 冗余 | 更新日期: 2023-09-27 18:28:47

我正在浏览一些代码。VS将return语句标记为冗余控制流跳转语句,并建议删除它。正确的语法是什么?

private async void TokenButton_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            var accountType = _settings["account_type"];
            if (accountType.Equals(AccountTypeMicrosoft))
            {
                this.Status.Text += "The original token is good for Live. No new token is needed.'n";
            }
            else
            {
                // Get access token for the target service
                if (!await GetAccessTokenForServiceAsync().ConfigureAwait(true))
                {
                    return;
                }
            }
        }
        catch (Exception ex)
        {
            this.Status.Text += "Exception caught: '" + ex.Message + "'.";
            this.Status.Foreground = _errorBrush;
        }
    }

冗余控制流跳转语句

删除整个if并将其替换为:

await GetAccessTokenForServiceAsync().ConfigureAwait(true)

您不需要检查结果,因为在任何一种情况下发生的下一件事都将是方法的结束。

函数的作用如下: if (condition) { return; } return; return语句是多余的。

您可以先检查验证条件,然后进行类似的处理

  if (!await GetAccessTokenForServiceAsync().ConfigureAwait(true))
   {
       return;
   }
    try {
       var accountType = _settings["account_type"];
        if (accountType.Equals(AccountTypeMicrosoft))
        {
            this.Status.Text += "The original ... ";
        }
     }
  catch() {}