using y Dispose en C#
Limpieza determinista: el handle del archivo se cierra al terminar el ámbito.
var path = Path.GetTempFileName();
// un bloque using desecha el writer, y lo vacía, al cerrarse el ámbito
using (var writer = new StreamWriter(path))
{
writer.WriteLine("buffered until disposed");
}
// la declaración using, más corta, desecha al final del método
using var reader = new StreamReader(path);
Console.WriteLine(reader.ReadLine());
Cómo funciona
- El bloque
usingdesecha el writer en su llave de cierre, con flush incluido. - Una declaración
using vardesecha al final del método que la contiene. - Todo lo
IDisposable— archivos, conexiones, timers — encaja en esta forma.
Palabras clave y builtins usados aquí
newusingvar
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 346
- Tokens
- 52
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 35 segundos.
Paso 3 de 3 en Errores y archivos; paso 27 de 29 en Fundamentos del lenguaje.