DecoderFallbackBuffer Класс

Определение

Предоставляет буфер, позволяющий резервному обработчику возвращать в декодер альтернативную строку, если он не может декодировать входную последовательность байтов.Provides a buffer that allows a fallback handler to return an alternate string to a decoder when it cannot decode an input byte sequence.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Наследование
DecoderFallbackBuffer
Производный

Комментарии

Кодировка определяет сопоставление между символом Юникода и закодированной последовательностью байтов.An encoding defines a mapping between a Unicode character and an encoded sequence of bytes. Операция декодирования, которая преобразует входную последовательность байтов в выходной символ, завершается ошибкой, если для конкретной последовательности байтов не определено сопоставление.A decoding operation, which converts an input byte sequence to an output character, fails if no mapping is defined for a particular byte sequence.

.NET Framework предоставляет механизм обработки сбоев, называемый откатом, если преобразование не может быть выполнено.The .NET Framework provides a failure handling mechanism, called a fallback, if a conversion cannot be performed. Все резервные обработчики декодера должны реализовывать следующее:All decoder fallback handlers must implement the following:

  • Откат декодера, представленный классом, производным от класса DecoderFallback.A decoder fallback, which is represented by a class derived from the DecoderFallback class.

  • Резервный буфер декодера, представленный типом, производным от класса DecoderFallbackBuffer, который может возвращать строку в операцию преобразования.A decoder fallback buffer, which is represented by a type derived from the DecoderFallbackBuffer class that can return a string to the conversion operation.

Резервные варианты могут использовать три стратегии для обработки ошибок преобразования:Fallbacks can use three strategies to handle conversion failures:

  • Наилучшее сопоставление.Best-fit mapping. Резервный буфер декодера может возвращать строку, представляющую близкое приближение к входной последовательности байтов.The decoder fallback buffer can return a string that represents a close approximation to the input byte sequence. .NET Framework не предоставляет общедоступной DecoderFallbackBuffer реализации наилучшего соответствия.The .NET Framework does not provide a public best-fit DecoderFallbackBuffer implementation.

  • Сказк.Replacement. Буфер резерва декодера может возвращать строку, например вопросительный знак ("?"), которая указывает, что последовательность байтов не может быть декодирована.The decoder fallback buffer can return a string, such as a question mark ("?"), that indicates that a byte sequence could not be decoded. В .NET Framework классы DecoderReplacementFallback и DecoderReplacementFallbackBuffer обеспечивают открытую реализацию резервного буфера для замены.In the .NET Framework, the DecoderReplacementFallback and DecoderReplacementFallbackBuffer classes provide a public replacement fallback buffer implementation. Конструктор класса DecoderReplacementFallback позволяет определить строку замены.The constructor of the DecoderReplacementFallback class enables you to define the replacement string.

  • Исключение.Exception. Реализация DecoderFallbackBuffer создает исключение, которое указывает, что последовательность байтов не может быть декодирована, и завершает операцию декодирования.The DecoderFallbackBuffer implementation throws an exception, which indicates that a byte sequence cannot be decoded, and terminates the decoding operation. В этом случае резервный обработчик должен предоставить реализацию DecoderFallbackBuffer, хотя она не возвращает в декодер строку.In this case, the fallback handler must provide a DecoderFallbackBuffer implementation, although it does not return a string to the decoder. В .NET Framework классы DecoderExceptionFallback и DecoderExceptionFallbackBuffer предоставляют открытую реализацию резервного исключения, которая DecoderFallbackException создает исключение, когда последовательность байтов не может быть декодирована.In the .NET Framework, the DecoderExceptionFallback and DecoderExceptionFallbackBuffer classes provide a public exception fallback implementation that throws a DecoderFallbackException when a byte sequence cannot be decoded.

Буфер в реализации DecoderFallbackBuffer представляет целую строку, возвращаемую декодеру в ответ на откат декодера.The buffer in a DecoderFallbackBuffer implementation represents the entire string to be returned to the decoder in response to a decoder fallback. Как правило, реализации также включают в себя сведения о состоянии, например индекс следующего символа, возвращаемого в декодер, и число оставшихся символов для возврата.Generally, implementations also include state information, such as the index of the next character to return to the decoder and the number of remaining characters to be returned. Поскольку DecoderFallbackBuffer является абстрактным классом, он требует, чтобы производные классы реализовали следующие члены как минимум:Because DecoderFallbackBuffer is an abstract class, it requires derived classes to implement the following members at a minimum:

  • Метод Fallback, который вызывается декодером, когда он не может декодировать последовательность байтов.The Fallback method, which is called by the decoder when it cannot decode a byte sequence. Декодер передает в реализацию резервного буфера два фрагмента данных: массив, содержащий байты, которые не удалось декодировать, и индекс первого байта во входном массиве байтов.The decoder passes two pieces of information to the fallback buffer implementation: an array containing the bytes that could not be decoded and the index of the first byte in the input byte array. В обработчике исключений отката декодера в этом методе создается исключение.In a decoder fallback exception handler, the exception is thrown in this method. В противном случае метод возвращает true, если он предоставляет откат, или false, если нет.Otherwise, the method returns true if it provides a fallback, or false if it does not.

  • Метод GetNextChar, который вызывается повторно декодером, если метод Fallback возвращает true.The GetNextChar method, which is called repeatedly by the decoder if the Fallback method returns true. В последовательных вызовах обработчик должен возвращать каждый символ в своем буфере.In successive calls, the handler should return each character in its buffer. Когда он возвращает все символы, он должен возвращать U + 0000.When it has returned all characters, it should return U+0000. Обработчик отката исключений всегда возвращает U + 0000.An exception fallback handler always returns U+0000.

  • Метод MovePrevious, который пытается переместить указатель на предыдущую точку в буфере и указывает, было ли перемещение успешным.The MovePrevious method, which tries to move the pointer to the previous position in the buffer and indicates whether the move was successful. Обработчик исключений всегда возвращает false.An exception handler always returns false.

  • Свойство Remaining, указывающее количество оставшихся символов, возвращаемых декодеру.The Remaining property, which indicates the number of remaining characters to be returned to the decoder. Обработчик отката исключений всегда возвращает ноль.An exception fallback handler always returns zero.

Конструкторы

DecoderFallbackBuffer()

Инициализирует новый экземпляр класса DecoderFallbackBuffer.Initializes a new instance of the DecoderFallbackBuffer class.

Свойства

Remaining

При переопределении в производном классе возвращает максимальное число символов в текущем объекте DecoderFallbackBuffer, которые остаются для обработки.When overridden in a derived class, gets the number of characters in the current DecoderFallbackBuffer object that remain to be processed.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Fallback(Byte[], Int32)

При переопределении в производном классе готовит резервный буфер для обработки указанной входной последовательности байтов.When overridden in a derived class, prepares the fallback buffer to handle the specified input byte sequence.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetNextChar()

При переопределении в производном классе извлекает следующий символ в резервном буфере.When overridden in a derived class, retrieves the next character in the fallback buffer.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
MovePrevious()

При переопределении в производный класс становится причиной того, что в следующем вызове метод GetNextChar() получает доступ к позиции символа в буфере данных, предшествующей текущей позиции символа.When overridden in a derived class, causes the next call to the GetNextChar() method to access the data buffer character position that is prior to the current character position.

Reset()

Инициализирует все данные и сведения о состоянии, относящиеся к этому резервному буферу.Initializes all data and state information pertaining to this fallback buffer.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

Дополнительно