防止在C#中进一步执行调用函数

时间:2014-10-29 14:44:39

标签: c# function methods

我有一个函数,它在按钮点击时执行,它看起来像这样

private void Login_Button_Click(object sender, RoutedEventArgs e)
    {
        if (!CheckFields())
            return;

        if (!WritePerforceSettingsXml(rewriteSettingsCheckbox.IsChecked.Value))
            return;

        Dictionary<string, string> installerToUpdateList = new Dictionary<string, string>();
        if (!GetUpdateListFilesFromXml(ref installerToUpdateList))
            return;            

       //some code
    }

正如您所看到的,我有一些函数可以检查输入值的正确性,或者只是有&#34; try-catch&#34;内部的运营商,如果&#34; catch&#34;情况发生或输入无效应进一步执行调用程序(Login_Button_Click函数)。
但是所有的功能都会回归&#34; bool&#34;我认为并不正常。

还有其他方法可以阻止调用函数进一步执行吗?

1 个答案:

答案 0 :(得分:1)

我会反转布尔条件:

private void Login_Button_Click(object sender, RoutedEventArgs e)
{
    if (CheckFields() && WritePerforceSettingsXml(rewriteSettingsCheckbox.IsChecked.Value))
    {
        Dictionary<string, string> installerToUpdateList = new Dictionary<string, string>();
        if (GetUpdateListFilesFromXml(ref installerToUpdateList))
        {         
            //some code
        }
    }
}

通过这种方式,您可以正确地检查哪个更清晰,更容易理解,您还可以减少功能中的数量或返回,从而提高可读性。代码也有更少的行。