стандартная библиотека .net содержит класс Decoder с методом Convert.
Этот метод декодирует двоичные данные во входном массиве в символьные данные в выходном массиве. Он имеет выходной параметр completed, чтобы указать, были ли использованы все переданные байты.
Этот метод задокументирован, чтобы выбросить ArgumentException, если
The output buffer is too small to contain any of the converted input.
Пока все хорошо, если в выходном буфере недостаточно места, completed ложно, если в выходном буфере вообще нет свободного места, выдается ArgumentException.
Однако в документации по исключениям говорится
The output buffer should be greater than or equal to the size indicated by the
GetCharCountmethod.
что меня смутило. Если выходной буфер должен быть больше или равен размеру метода GetCharCount, не должен ли выходной параметр completed всегда быть истинным? Если да, то какая польза. Как именно сигнализируется (не)завершение?
@GSerg, это выглядит уместно, спасибо за указатель.





Возможно актуально: stackoverflow.com/q/49519637/11683