我需要生成自己的DecoderFallback和DecoderFallbackBuffer类来实现一些自定义流解码。
我发现使用它的流阅读器重复调用GetNextChar(),即使我的specilizaed DecoderFallbackBuffer.Remaining属性返回0表示没有更多字符要返回。
最终结果是流阅读器进入无限循环。
为什么会这样?
答案 0 :(得分:0)
当剩余属性为0时,解决方法是使一个人的GetNextChar()返回(char)0。这在MSDN文档中肯定不清楚。
我怀疑,在内部,读者正在做类似
的事情while (theChar = dfb.GetNextChar() <> 0){}
而不是
while (dfb.Remaining > 0){ theChar = dfb.GetNextChar(); }
无论如何,似乎工作正常。只是想将这个.NET类用于SO。