.locals init ([0] class [mscorlib]System.IO.TextWriter w) IL_0000: ldstr "log.txt" IL_0005: call class [mscorlib]System.IO.StreamWriter [mscorlib]System.IO.File::CreateText(string) IL_000a: stloc.0 .try { IL_000b: ldloc.0 IL_000c: ldstr "This is line one" IL_0011: callvirt instance void [mscorlib] System.IO.TextWriter::WriteLine(string) IL_0016: leave.s IL_0022 } // end .try finally { IL_0018: ldloc.0 IL_0019: brfalse.s IL_0021 IL_001b: ldloc.0 IL_001c: callvirt instance void [mscorlib] System.IDisposable::Dispose() IL_0021: endfinally } // end handler
ماخذ
زمانیکه از using statement استفاده میکنید، خود کامپایلر try/finally رو اضافه میکنه. یعنی قسمت close الان بهش نیازی نیست چون استریم مورد استفاده حتما در اینجا dispose میشه.