Объединение 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; } }

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: