[英]Rewrite if statement to switch case with C#
我想通过使用 switch case 而不是 if 语句来改进我的C#
代码。 实际上,我有这样的东西:
// 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);
}
在这种情况下,当第一个 if 语句成功时,将调用 else 语句,我不希望这样。 所以我想用开关盒代替。
但是如何使用Enumerables
在.Correspond()
方法上设置切换条件?
像这样:
switch (EtapeSuivanteAModifier.Statut.Correspond(...))
{
case ( ?? ):
break;
case ( ?? ):
break;
}
你在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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.