Да си припомним: какво са класовете и обектите?



страница70/84
Дата03.01.2022
Размер0.54 Mb.
#112941
ТипПрограма
1   ...   66   67   68   69   70   71   72   73   ...   84
Класове
Свързани:
Изпитна тема1, Изпитна тема2
PriceCalculator.cs

public class PriceCalculator

{

public const int SmallCoffeeQuantity = 100;



public const int NormalCoffeeQuantity = 150;

public const int DoubleCoffeeQuantity = 300;

 

public CashMachine() { }



 

public double CalcPrice(int quantity)

{

switch (quantity)



{

case SmallCoffeeQuantity:

return 0.20;

case NormalCoffeeQuantity:

return 0.30;

case DoubleCoffeeQuantity:

return 0.60;

default:


throw new InvalidOperationException(

"Unsupported coffee quantity: " + quantity);

}

}

}



Създали сме три константи, отразяващи вместимостта на чашките за кафе, които имаме в заведението, съответно 100, 150 и 300 ml. Освен това очакваме, че потребителите на нашия клас ще използват прилежно дефинираните от нас константи, вместо числа – SmallCoffeeQuantity, NormalCoffeeQuantity и DoubleCoffeeQuantity. Методът CalcPrice(int) връща съответната цена, като я изчислява според подаденото количество.

Проблемът, се състои в това, че някой може да реши да не използва дефинираните от нас константи и може да подаде като параметър на нашия метод невалидно число, например -1 или 101. В този случай, ако методът не прави проверка за невалидно количество, най-вероятно ще върне грешна цена, което е некоректно поведение.

За да избегнем този проблем, ще използваме една особеност на изброени­те типове, а именно, че константите в изброените типове могат да се използват в конструкции switch-case. Те могат да бъдат подавани като стойност на оператора switch и съответно – като операнди на оператора case.





Сподели с приятели:
1   ...   66   67   68   69   70   71   72   73   ...   84




©obuch.info 2024
отнасят до администрацията

    Начална страница