Вы хотите проверить документацию для , используя оператор (вместо , используя директиву , которая касается пространств имен).
По сути, это означает, что блок преобразуется в блок try
/ finally
, а sw.Dispose()
вызывается в блоке finally (с подходящей проверкой на недействительность).
Вы можете использовать оператор использования везде, где вы имеете дело с типом, реализующим IDisposable
- и обычно вам следует использовать его для любого одноразового объекта, за который вы берете на себя ответственность.
Несколько интересных битов о синтаксисе:
Вы можете получить несколько ресурсов одним оператором:
using (Stream input = File.OpenRead("input.txt"),
output = File.OpenWrite("output.txt"))
{
// Stuff
}
Вам не нужно присваивать переменную:
// For some suitable type returning a lock token etc
using (padlock.Acquire())
{
// Stuff
}
Вы можете вкладывать их без скобок; удобно, чтобы избежать вдавливания
using (TextReader reader = File.OpenText("input.txt"))
using (TextWriter writer = File.CreateText("output.txt"))
{
// Stuff
}