Поиск

Объединение case-меток

В примере 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; } }