Принципы объектно-ориентированного программирования

         

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



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



Содержание раздела