Инструкция using предназначена для неявного вызова метода Dispose() для объекта, который используется в блоке.
Инструкция может using применяется только к объектам, которые реализованы в интерфейсе System.IDisposable.
Инструкция может using применяется только к объектам, которые реализованы в интерфейсе System.IDisposable.
Синтаксис:
using (объект) {
//использование объекта
}
или
using (тип объект = инициализация) {
//использование объекта
}
using (объект) {
//использование объекта
}
или
using (тип объект = инициализация) {
//использование объекта
}
Создайте компонент, файл с расширением .dll и класс в нем, с модификатором доступа public.
Переименуйте имя класса в Counter. Введите код. Скомпилируйте и получите файл с расширением .dll
Class1.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;//подключить пространство именusingSystem.ComponentModel;//атрибут объявляющий сборку совместимой с CLS[assembly: CLSCompliant(true)]namespacedllCounter {-
//переименовать класс -
publicclassCounter : IDisposable{ -
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(ushortarg0,ushortarg1,decimalarg2) { -
showStart = arg0; -
showEnd = arg1; -
price = arg2; -
} -
publicushortResultShow() { -
return(ushort)(showEnd - showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} -
publicvoidDispose() { -
GC.Collect(); -
} -
} }
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;//подключить пространство именusingSystem.ComponentModel;//атрибут объявляющий сборку совместимой с CLS[assembly: CLSCompliant(true)]namespacedllCounter {-
//переименовать класс -
publicclassCounter : IDisposable{ -
ushortshowStart; -
ushortshowEnd; -
decimalprice; -
publicCounter(ushortarg0,ushortarg1,decimalarg2) { -
showStart = arg0; -
showEnd = arg1; -
price = arg2; -
} -
publicushortResultShow() { -
return(ushort)(showEnd - showStart); -
} -
publicdecimalSum() { -
returnMath.Round((decimal)(ResultShow() * price), 2); -
} -
publicvoidDispose() { -
GC.Collect(); -
} -
} }
Создайте обычный проект. Добавьте ссылку на созданную библиотеку.
Выберите файл с расширением .dll
Ссылка добавлена.
Main.cs
usingSystem;//подключить пространство именusingdllCounter;classProgram {-
publicstaticintMain() { -
Console.WriteLine("Расчет электроэнергии\n"); -
Console.Write("Начальные показания : "); -
ushortshowStart =ushort.Parse(Console.ReadLine()); -
Console.Write("Конечные показания : "); -
ushortshowEnd =ushort.Parse(Console.ReadLine()); -
Console.Write("Цена за 1кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
//для неявного вызова метода Dispose(), который объявлен -
//в коде dllCounter.dll -
using(Counter C =newCounter(showStart, showEnd, price)) { -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
} -
Console.ReadKey(); -
return0; -
} }
usingSystem;//подключить пространство именusingdllCounter;classProgram {-
publicstaticintMain() { -
Console.WriteLine("Расчет электроэнергии\n"); -
Console.Write("Начальные показания : "); -
ushortshowStart =ushort.Parse(Console.ReadLine()); -
Console.Write("Конечные показания : "); -
ushortshowEnd =ushort.Parse(Console.ReadLine()); -
Console.Write("Цена за 1кВт/ч : "); -
decimalprice =decimal.Parse(Console.ReadLine()); -
//для неявного вызова метода Dispose(), который объявлен -
//в коде dllCounter.dll -
using(Counter C =newCounter(showStart, showEnd, price)) { -
Console.WriteLine("Сумма за электроэнергию : {0}", C.Sum()); -
} -
Console.ReadKey(); -
return0; -
} }
Расчет электроэнергии
Начальные показания : 0
Конечные показания : 100
Цена за 1кВт/ч : 0,3084
Сумма за электроэнергию : 30,84
Начальные показания : 0
Конечные показания : 100
Цена за 1кВт/ч : 0,3084
Сумма за электроэнергию : 30,84