Junior
Афзалиятҳои истифодаи блоки using дар C# чист?
sobes.tech AI
Ҷавоб аз AI
Дар using дар C# барои идораи автоматии захираҳое истифода мешавад, ки интерфейси IDisposable-ро иҷро мекунанд.
Арзиши асосӣ:
-
Роҳати кафолатии озод кардани захираҳо: Новобаста аз он ки дар дохили блок ягон истисно рух медиҳад ё не, усули
Dispose()автоматӣ ҳангоми баромадан аз блокиusingдаъват мешавад. Ин пешгирӣ мекунад аз ҷорӣ шудани сӯроқҳои захираҳо. -
Осон кардани коди: Зарур нест, ки
Dispose()-ро дар блокҳоиfinallyёcatchдаъват кунед, ки ин коди шуморо ба назар осонтар ва камтар хатогӣовар мекунад. -
Кор бо захираҳои ғайримустақим:
usingметавонад барои идораи захираҳое, ки дар дохили ҳамин блок ғайримустақим эҷод мешаванд, истифода шавад.
Масалан:
// Истифодаи StreamWriter барои навиштани дар файл
using (StreamWriter writer = new StreamWriter("myfile.txt"))
{
writer.WriteLine("Hello, world!");
// StreamWriter автоматӣ баста ва озод мешавад вақте ки аз ин блок мебарояд
}
// Мисоли дигар бо захирае, ки метавонад истисно эҷод кунад
using (var connection = new SqlConnection("connection string"))
{
connection.Open();
// Оғоз кардани амалиётҳо бо базаи додаҳо.
// Агар истисно рух диҳад, `Dispose()` ҳамеша даъват мешавад.
} // connection.Dispose() дар ин ҷо даъват мешавад