.net标准库包含带有方法Decoder
的类Convert
。
此方法将输入数组中的二进制数据解码为输出数组中的字符数据。它具有一个输出参数completed
,用于指示是否使用了所有传入的字节。
该方法记录为如果抛出ArgumentException
输出缓冲区太小,无法包含任何转换后的输入。
到目前为止,很好,如果输出缓冲区中没有足够的空间,则completed
为假,如果输出缓冲区中根本没有可用空间,则会抛出ArgumentException
。
但是,例外文档继续说
输出缓冲区应大于或等于
GetCharCount
方法指示的大小。
这让我感到困惑。如果输出缓冲区应该大于或等于GetCharCount方法的大小,那么completed
输出参数是否应该始终为true?如果是这样,它有什么用。 (未完成)如何准确发出信号?