重写if语句以使用C#切换大小写

问题描述

我想通过使用switch case而不是if语句来改进// Refuse case when validator2 click to send : notator mail + validator 1 copy if (EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.Refuse)) { if (EtapeActuelle.Statut.Correspond(StatutWorkflowEnumValues.AValider2)) { documentContainer.MailTo(mail.AdressesMailDestinataires,mail.AdressesMailDestinatairescopies); } } // Agree case when validor 1 click to send : mail validator 2 + notator copy else if (EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.AValider2)) { documentContainer.MailTo(mail.AdressesMailDestinataires,mail.AdressesMailDestinatairescopies); } else { documentContainer.MailTo(mail.AdressesMailDestinataires); } 代码。 其实我有这样的东西:

.Correspond()

在这种情况下,当第一个if语句成功执行时,将调用else语句,但我不希望这样。所以我想用开关盒代替。

但是如何使用Enumerablesswitch (EtapeSuivanteAModifier.Statut.Correspond(...)) { case ( ?? ): break; case ( ?? ): break; } 方法上设置切换条件?

类似这样的东西:

Scaffold(
      body: ListView
    )

解决方法

您在if/else if中都做两次相同的事情

if (EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.Refuse))
{
    if (EtapeActuelle.Statut.Correspond(StatutWorkflowEnumValues.AValider2))
    {
        documentContainer.MailTo(mail.AdressesMailDestinataires,mail.AdressesMailDestinatairesCopies);
    }
}
// Agree case when validor 1 click to send : mail validator 2 + notator copy
else if (EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.AValider2))
{
    documentContainer.MailTo(mail.AdressesMailDestinataires,mail.AdressesMailDestinatairesCopies);
}

您可以重构条件,例如:

if ((EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.Refuse)     // Condition in the if
           && EtapeActuelle.Statut.Correspond(StatutWorkflowEnumValues.AValider2)) // <---^
     || EtapeSuivanteAModifier.Statut.Correspond(StatutWorkflowEnumValues.AValider2)) // Condition in the else if
{
    documentContainer.MailTo(mail.AdressesMailDestinataires,mail.AdressesMailDestinatairesCopies); // Same action
}
else
{
    documentContainer.MailTo(mail.AdressesMailDestinataires);
}