ストリームを生成するコードがあります。 StreamingReadStringからの返された文字列の長さは997であり、StreamReader.ReadToEnd()から返された値は空のストリームですが、人口の後ではストリームの長さは1000です(たとえば)。ここでStream.ReadStringは、StreamReader.ReadToEndがstring.Emptyを返し、両方が間違っている場合に1つの結果を返します。
は、私は(明らかに、これはまさに私の作業コードではなく、問題は同じです)何を意味するかを示すコードです:
MemoryStream stream = MethodCreatingPopulatedStream(stream);
StreamReader reader = new StreamReader(stream);
if (stream.Length != reader.ReadToEnd().Length)
{
PostQuestionInStackOverFlow();
}
else if (!string.Equals(reader.ReadToEnd(), stream.ReadString()))
{
PostQuestionInStackOverFlow();
GetAnnoyedAtDotNet();
}
else
{
Smile();
}
私はここで何をしないのですか?
P.Sは、Stream.Flush追加どこ変化
ケントはそのほとんどをカバーしていますが、最初のブロックで 'ReadToEnd'を呼び出すと、ストリームの終わりに両方が配置されているので、ストリームまたはリーダーのどちらからも読み込むことはありません。たぶんあなたは実際にコンパイルして問題を示す短くて完全なプログラムとして* real *コードを投稿するべきです... –