EncoderFallbackBuffer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет буфер, позволяющий резервному обработчику возвращать альтернативную строку кодировщику, если он не может кодировать входной символ.
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- Наследование
-
EncoderFallbackBuffer
- Производный
Комментарии
Кодировка определяет сопоставление символа Юникода и закодированной последовательности байтов. Операция кодирования, которая преобразует входной символ в выходную последовательность байтов, завершается ошибкой, если сопоставление не определено для определенного символа.
Платформа .NET Framework предоставляет механизм обработки сбоев, называемый резервным вариантом, если преобразование невозможно выполнить. Все резервные обработчики кодировщика должны реализовать следующее:
Резервный вариант кодировщика, который представлен классом, производным от EncoderFallback класса.
Резервный буфер кодировщика, который представлен типом, производным от EncoderFallbackBuffer класса, который может возвращать строку в операцию преобразования.
Резервные копии могут использовать три стратегии для обработки сбоев преобразования:
Лучшее сопоставление. Резервный буфер кодировщика может возвращать строку, представляющую близкое приближение к входным символам. Платформа .NET Framework не предоставляет общедоступную EncoderFallbackBuffer реализацию.
Замена. Резервный буфер кодировщика может возвращать строку, например вопросительный знак ("?"), который указывает, что символ не удалось закодировать. В .NET Framework EncoderReplacementFallback и EncoderReplacementFallbackBuffer классы предоставляют общедоступную реализацию резервного буфера замены. Конструктор EncoderReplacementFallback класса позволяет определить строку замены.
Исключение. Реализация EncoderFallbackBuffer создает исключение, указывающее, что символ не может быть закодирован и завершает операцию кодирования. В этом случае резервный EncoderFallbackBuffer обработчик должен предоставить реализацию, хотя она не возвращает строку кодировщику. В .NET Framework EncoderExceptionFallback и EncoderExceptionFallbackBuffer классы предоставляют общедоступную резервную реализацию исключения, которая создает исключение, вызывающее EncoderFallbackException , когда символ не может быть закодирован.
Буфер в EncoderFallbackBuffer реализации представляет всю строку, возвращаемую кодировщику в ответ на резервную передачу кодировщика. Как правило, реализации также включают сведения о состоянии, такие как индекс следующего символа, возвращаемый кодировщику, и количество оставшихся символов, возвращаемых. Так как EncoderFallbackBuffer это абстрактный класс, он требует от производных классов реализовать следующие члены как минимум:
Перегруженный Fallback метод, который вызывается кодировщиком, если он не может закодировать символ. Кодировщик передает две части информации в резервную реализацию буфера: символ или суррогатную пару, которая не может быть закодирована и индекс символа во входных данных. В резервном обработчике исключений кодировщика исключение создается в этом методе. В противном случае метод возвращается
true, если он предоставляет резервный вариант илиfalseесли он не выполняется.Метод GetNextChar , который вызывается кодировщиком повторно, если Fallback метод возвращается
true. В последующих вызовах обработчик должен возвращать каждый символ в буфере. Когда он вернул все символы, он должен возвращать U+0000. Обработчик исключений всегда возвращает U+0000.Метод MovePrevious , который пытается переместить указатель на предыдущую позицию в буфере и указывает, выполнен ли перемещение успешно. Обработчик исключений всегда возвращается
false.Свойство Remaining , указывающее количество оставшихся символов, возвращаемых кодировщику. Резервный обработчик исключения всегда возвращает ноль.
Конструкторы
| Имя | Описание |
|---|---|
| EncoderFallbackBuffer() |
Инициализирует новый экземпляр класса EncoderFallbackBuffer. |
Свойства
| Имя | Описание |
|---|---|
| Remaining |
При переопределении в производном классе получает количество символов в текущем EncoderFallbackBuffer объекте, который остается обрабатывать. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Fallback(Char, Char, Int32) |
При переопределении в производном классе подготавливает резервный буфер для обработки указанной суррогатной пары. |
| Fallback(Char, Int32) |
При переопределении в производном классе подготавливает резервный буфер для обработки указанного входного символа. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetNextChar() |
При переопределении в производном классе извлекает следующий символ в резервном буфере. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MovePrevious() |
При переопределении в производном классе вызывает следующий вызов GetNextChar() метода для доступа к позиции символа буфера данных, которая находится до текущей позиции символа. |
| Reset() |
Инициализирует все данные и сведения о состоянии, относящиеся к этому резервному буферу. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |