嵌套'if' - 'else'语句

Yos*_*199 7 c# if-statement switch-statement

我的代码非常混乱if- else如果检查它正在做.分支和嵌套分支的数量非常大(如果是 - 否则超过20,否则也是嵌套的).它使我的代码更难以阅读,并可能是一个性能损失.我的应用程序检查它从用户获得的很多条件,因此应用程序必须始终检查不同的情况,例如:

如果文本框文本不为0,请继续下一步...

if ((StartInt != 0) && (EndInt != 0))   
{
Run Code Online (Sandbox Code Playgroud)

然后在这里检查用户是否选择了日期:

if ((datePickerStart.SelectedDate == null) || (datePickerEnd.SelectedDate == null)) 
{
    MessageBox.Show("Please Choose Dates");
}
Run Code Online (Sandbox Code Playgroud)

在这里,如果datepickers不为null,则继续代码...

else if ((datePickerStart.SelectedDate != null) && (datePickerEnd.SelectedDate != null))
{
    // CONDITIONS FOR SAME STARTING DAY AND ENDING DAY.
    if (datePickerStart.SelectedDate == datePickerEnd.SelectedDate)
    {
        if (index1 == index2)
        {
            if (StartInt == EndInt)
            {
                if (radioButton1.IsChecked == true)
                {
                    printTime3();
                }
                else
                {
                    printTime();
                }
            }
Run Code Online (Sandbox Code Playgroud)

这只是正在进行的检查的一小部分.其中一些是功能,一些是输入验证的东西.

有没有办法让它更具可读性,而不是性能损失?

Dan*_*ite 13

这不是一场表演生猪.关于如何解决这些常见问题的一篇很棒的博客文章是Flattening Arrow Code.