параметр this

Ключевое слово this ссылается на объект собственного класса, который будет создан.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • class Counter {
  •  ushort showStart;
  •  ushort showEnd;
  •  public Counter(ushort arg0, ushort arg1) {
  •   showStart = arg0;
  •   showEnd = arg1;
  •  }
  •  public ushort ResultShow() {
  •   return (ushort)(showEnd - showStart);
  •  }
  •  //
  •  public decimal GetPrice() {
  •   /*оператор this указывает, что в качестве параметра
  •   будет передан созданный объект класса Counter*/
  •   return Price.PriceElectro(this);
  •  }
  •  public decimal Sum() {
  •   /*оператор this указывает, что в качестве параметра
  •   будет передан созданный объект класса Counter*/
  •   return Math.Round( (decimal)ResultShow() * Price.PriceElectro(this) , 2);
  •  }
  • }
  •  
  • class Price {
  •  //
  •  public static decimal PriceElectro(Counter obj) {
  •   if(obj.ResultShow()>0 & obj.ResultShow()<=150) {
  •    return 0.3084m;
  •   }
  •   else if(obj.ResultShow()>150 & obj.ResultShow()<=800) {
  •    return 0.4194m;
  •   }
  •   else if(obj.ResultShow() > 800) {
  •    return 1.3404m;
  •   }
  •   else {
  •    return 0;
  •   }
  •  }
  • }
  •  
  • class Program {
  •  
  •  public static int Main() {
  •   Console.WriteLine("оплата за электроэнергию\n");
  •   Console.Write("Введите начальные показания счетчика : ");
  •   ushort show_start = ushort.Parse(Console.ReadLine());
  •   Console.Write("Введите конечные показания счетчика  : ");
  •   ushort show_end = ushort.Parse(Console.ReadLine());
  •   Counter C = new Counter(show_start, show_end);
  •   Console.WriteLine("Цена за 1 кВт/ч                      : {0}", C.GetPrice());
  •   Console.WriteLine("Сумма за электроэнергию              : {0}", C.Sum());
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
оплата за электроэнергию

Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 150
Цена за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 46,26