Существует два варианта использования ключевого слова в C # следующим образом.
- как директива
Обычно мы используем ключевое слово using для добавления пространств имен в коде и файлах классов. Затем он делает доступными все классы, интерфейсы и абстрактные классы, а также их методы и свойства на текущей странице.
Ex:
using System.IO;
- как утверждение
Это еще один способ использовать ключевое слово using в C #. Это играет жизненно важную роль в улучшении производительности в сборке мусора.
Оператор using гарантирует, что Dispose () вызывается, даже если возникает исключение при создании объектов и вызове методов, свойств и т. Д. Dispose () - это метод, присутствующий в интерфейсе IDisposable, который помогает реализовать пользовательскую сборку мусора. Другими словами, если я выполняю какую-либо операцию с базой данных (Вставка, Обновление, Удаление), но каким-то образом происходит исключение, то здесь оператор using автоматически закрывает соединение. Нет необходимости явно вызывать метод Close () подключения.
Другим важным фактором является то, что он помогает в пуле соединений. Пул подключений в .NET помогает избежать многократного закрытия соединения с базой данных. Он отправляет объект подключения в пул для будущего использования (следующий вызов базы данных). При следующем вызове соединения с базой данных из вашего приложения пул соединений извлекает объекты, доступные в пуле. Так что это помогает улучшить производительность приложения. Поэтому, когда мы используем оператор using, контроллер автоматически отправляет объект в пул соединений, поэтому нет необходимости явно вызывать методы Close () и Dispose ().
Вы можете сделать то же, что и оператор using, используя блок try-catch и явно вызывая Dispose () внутри блока finally. Но оператор using делает вызовы автоматически, чтобы сделать код чище и элегантнее. Внутри блока using объект доступен только для чтения и не может быть изменен или переназначен.
Ex:
string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
conn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
}
}
В предыдущем коде я не закрываю соединение, оно автоматически закрывается. Оператор using вызовет conn.Close () автоматически из-за оператора using (using (SqlConnection conn = new SqlConnection (connString)) и того же для объекта SqlDataReader. А также, если произойдет любое исключение, он автоматически закроет соединение. 1024 *
Для получения дополнительной информации -> https://www.c -sharpcorner.com / UploadFile / manas1 / использование и важность использования в C-Sharp472 /