Я оставлю свой оригинальный вопрос ниже.У меня вопрос, почему следующие строки выдают исключение
(вы можете видеть, что оно выполняется на http://www.ideone.com/rfQLE)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace CSQuick
{
class Program
{
static void Main(string[] args)
{
using (var ff = new MemoryStream())
using (var f = new StreamWriter(ff))
{
f.WriteLine("Hi");
using (TextReader ts = new StreamReader(ff))
{
}
}
}
}
}
Исключение из веб-сайта ideone (возможно, с использованием mono?C #, что вызывает исключение)
Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed.
at System.IO.MemoryStream.CheckIfClosedThrowDisposed () [0x00000] in <filename unknown>:0
at System.IO.MemoryStream.Write (System.Byte[] buffer, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.FlushBytes () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.Flush () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0
Почему я получаю исключение с сообщением "Не удается получить доступ к закрытому потоку."окончательные результаты в темп. ниже должны сделать это, но я не понимаю, как или почему мой поток закрыт?
using (var ff = new MemoryStream())
using (var f = new StreamWriter(ff))
{
foreach (var t in blah)
{
blahblah(t, f);
}
ff.Flush()
using (TextReader ts = new StreamReader(ff))
{
temp = ts.ReadToEnd();
do_a_check(fn, temp);
}
}//Cannot access a closed Stream.