Вопрос по поводу оператора using. Почему когда я пишу так, то в файл ничего не пишется.
static void Main(string[] args)
{
string[] lines = { "First line", "Second line", "Third line" };
string docPath = Path.Combine(Directory.GetCurrentDirectory(), "WriteLines.txt");
StreamWriter outputFile = new StreamWriter(docPath);
outputFile.WriteLine(lines[0]);
}
А если по примеру с msdn делать, то всё работает. Какую роль играет оператор using в данном примере? Да и в общем объяснение "Предоставляет удобный синтаксис, обеспечивающий правильное использование объектов IDisposable" мне непонятно.
static void Main(string[] args)
{
string[] lines = { "First line", "Second line", "Third line" };
string docPath = Path.Combine(Directory.GetCurrentDirectory(), "WriteLines.txt");
using (StreamWriter outputFile = new StreamWriter(docPath))
{
foreach (string line in lines)
outputFile.WriteLine(line);
}
}
using (StreamWriter outputFile = new StreamWriter(docPath))
{
foreach (string line in lines)
outputFile.WriteLine(line);
} // вызывает outputFile.Dispose(), который выталкивает на диск данные из буфера
using автоматически Dispose и Flush вызывает.
Без using можно тоже самое написать:
string[] lines = { "First line", "Second line", "Third line" };
string docPath = Path.Combine(Directory.GetCurrentDirectory(), "WriteLines.txt");
StreamWriter outputFile = new StreamWriter(docPath);
outputFile.AutoFlush = true;
foreach (string line in lines)
outputFile.WriteLine(line);
outputFile.Dispose();
Ну и в try/finally ещё заключить нужно.
Продвижение своими сайтами как стратегия роста и независимости