В примере
Payment
мы использовали несколько case-меток для каждого поля
Payment.tenders
отдельности. А если объединить case-метки? Скажем, для всех трех типов кредитных карточек, использование которых вы допускаете и которые приведены в перечислителе
Tenders,
вы хотите вывести диалоговое окно для авторизации карточки. В этом случае нужно расположить case-метки одну за другой:
using System;
enum Tenders : int {
Cash = 1,
Visa,
MasterCard,
AmericanExpress };
class Payment {
public Payment(Tenders tender)
{
this.Tender = tender;
}
protected Tenders tender; public Tenders Tender {
get
{
return this.tender;
}
set
{
this.tender = value;
} }
public void ProcessPayment() {
switch ((int)(this.tender)) {
case (int)Tenders.Cash: Console.WriteLine
("ХпНаличные - любимое всеми платежное "средство."); break;
case (int)Tenders.Visa: case (int)Tenders.MasterCard: case (int)Tenders.AmericanExpress:
Console. 1й/г11е1_1пе("\пОтображение диалогового окна "авторизации "+ " карточки.");
break;
default:
Console.Иг11е1-1пе("\пИзвините, недопустимое платежное
"средство."); break;
} > }
class CombiningCaseLabelsApp {
public static void Main() {
Payment payment = new Payment(Tenders.MasterCard);
payment. ProcessPaymentO; } }