инструкция using

Инструкция using предназначена для неявного вызова метода Dispose() для объекта, который используется в блоке.
Инструкция может using применяется только к объектам, которые реализованы в интерфейсе System.IDisposable.
Синтаксис:
using (объект) {
 //использование объекта
}

или
using (тип объект = инициализация) {
 //использование объекта
}
Создайте компонент, файл с расширением .dll и класс в нем, с модификатором доступа public.
Переименуйте имя класса в Counter. Введите код. Скомпилируйте и получите файл с расширением .dll
Скрыть

Показать

Копировать
  Class1.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • //подключить пространство имен
  • using System.ComponentModel;
  •  
  • //атрибут объявляющий сборку совместимой с CLS
  • [assembly: CLSCompliant(true)]
  •  
  • namespace dllCounter {
  •  //переименовать класс
  •  public class Counter : IDisposable{
  •   ushort showStart;
  •   ushort showEnd;
  •   decimal price;
  •   public Counter(ushort arg0, ushort arg1, decimal arg2) {
  •    showStart = arg0;
  •    showEnd = arg1;
  •    price = arg2;
  •   }
  •   public ushort ResultShow() {
  •    return (ushort)(showEnd - showStart);
  •   }
  •   public decimal Sum() {
  •    return Math.Round((decimal)(ResultShow() * price), 2);
  •   }
  •   public void Dispose() {
  •    GC.Collect();
  •   }
  •  }
  • }
Создайте обычный проект. Добавьте ссылку на созданную библиотеку.
Выберите файл с расширением .dll
Ссылка добавлена.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  • //подключить пространство имен
  • using dllCounter;
  •  
  • class Program {
  •  public static int Main() {
  •   Console.WriteLine("Расчет электроэнергии\n");
  •   Console.Write("Начальные показания : ");
  •   ushort showStart = ushort.Parse(Console.ReadLine());
  •   Console.Write("Конечные показания : ");
  •   ushort showEnd = ushort.Parse(Console.ReadLine());
  •   Console.Write("Цена за 1кВт/ч : ");
  •   decimal price = decimal.Parse(Console.ReadLine());
  •   //для неявного вызова метода Dispose(), который объявлен
  •   //в коде dllCounter.dll
  •   using(Counter C = new Counter(showStart, showEnd, price)) {
  •    Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum());
  •   }
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
Расчет электроэнергии

Начальные показания : 0
Конечные показания : 100
Цена за 1кВт/ч : 0,3084
Сумма за электроэнергию : 30,84