我有一个函数,它在按钮点击时执行,它看起来像这样
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;我认为并不正常。
还有其他方法可以阻止调用函数进一步执行吗?
答案 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
}
}
}
通过这种方式,您可以正确地检查哪个更清晰,更容易理解,您还可以减少功能中的数量或返回,从而提高可读性。代码也有更少的行。