Вы усложняете себе жизнь, вкладывая логику в свой интерфейс.У вас есть класс, в который вы уже помещаете значения, поэтому сделайте так, чтобы он работал для вас, и поддерживайте чистый интерфейс.
Для начала определите enum
для вашего значения Breakfast
- избегайте строк и избегайте логических значенийза это.Ваш код будет намного легче читать.
Тогда ваш класс CGlobals
должен быть определен следующим образом:
public static class CGlobals
{
public static Breakfast Breakfast = Breakfast.No;
public static decimal BreakfastPremium = 1.03m;
public static decimal BasePrice = 10m;
public static decimal FinalPrice
{
get
{
return BasePrice * (Breakfast == Breakfast.Yes ? BreakfastPremium : 1m);
}
}
}
Все детали и бизнес-правила хранятся там.Тогда ваш пользовательский интерфейс очень прост:
CGlobals.Breakfast = chkbBreakfast.Checked ? Breakfast.Yes : Breakfast.No;
lblTotalCost.Text = CGlobals.FinalPrice.ToString();
Вот и все.Нет if
заявления.Нет расчетов в вашем интерфейсе.Просто.
В идеале CGlobals
не должно быть static class
- но это совсем другой разговор.Пока все должно быть хорошо, но не придерживайтесь этого паттерна в течение длительного времени, так как это причинит вам много боли.