EncoderFallbackBuffer Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia bufor, który umożliwia programowi obsługi rezerwowej zwrócenie alternatywnego ciągu do kodera, gdy nie może zakodować znaku wejściowego.
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- Dziedziczenie
-
EncoderFallbackBuffer
- Pochodne
Uwagi
Kodowanie definiuje mapowanie między znakiem Unicode a zakodowaną sekwencją bajtów. Operacja kodowania, która konwertuje znak wejściowy na sekwencję bajtów wyjściowych, kończy się niepowodzeniem, jeśli nie zdefiniowano żadnego mapowania dla określonego znaku.
.NET Framework zapewnia mechanizm obsługi błędów nazywany rezerwą, jeśli nie można wykonać konwersji. Wszystkie programy obsługi rezerwowych koderów muszą implementować następujące elementy:
Rezerwowy koder, który jest reprezentowany przez klasę pochodną EncoderFallback klasy .
Bufor rezerwowy kodera, który jest reprezentowany przez typ pochodzący z EncoderFallbackBuffer klasy, który może zwrócić ciąg do operacji konwersji.
Rezerwowe mogą używać trzech strategii do obsługi błędów konwersji:
Mapowanie najlepiej dopasowane. Bufor rezerwowy kodera może zwrócić ciąg reprezentujący bliskie przybliżenie znaku wejściowego. .NET Framework nie zapewnia publicznej implementacji najlepiej dopasowanejEncoderFallbackBuffer.
Wymiana. Bufor rezerwowy kodera może zwrócić ciąg, taki jak znak zapytania ("?"), który wskazuje, że nie można zakodować znaku. W .NET Framework EncoderReplacementFallback klasy i EncoderReplacementFallbackBuffer zapewniają publiczną implementację buforu rezerwowego zamiany. Konstruktor EncoderReplacementFallback klasy umożliwia zdefiniowanie ciągu zastępczego.
Wyjątek. Implementacja EncoderFallbackBuffer zgłasza wyjątek, który wskazuje, że nie można zakodować znaku i kończy operację kodowania. W takim przypadku program obsługi rezerwowej musi zapewnić implementację EncoderFallbackBuffer , chociaż nie zwraca ciągu do kodera. W .NET Framework EncoderExceptionFallback klasy i EncoderExceptionFallbackBuffer zapewniają publiczną implementację rezerwową wyjątku, która zgłasza wyjątekEncoderFallbackException, gdy nie można zakodować znaku.
Bufor w EncoderFallbackBuffer implementacji reprezentuje cały ciąg, który ma zostać zwrócony do kodera w odpowiedzi na rezerwowy koder. Ogólnie rzecz biorąc, implementacje obejmują również informacje o stanie, takie jak indeks następnego znaku w celu powrotu do kodera i liczba pozostałych znaków do zwrócenia. Ponieważ EncoderFallbackBuffer jest to klasa abstrakcyjna, wymaga klas pochodnych, aby zaimplementować co najmniej następujące elementy członkowskie:
Przeciążona Fallback metoda, która jest wywoływana przez koder, gdy nie może zakodować znaku. Koder przekazuje dwie informacje do implementacji bufora rezerwowego: pary znaków lub zastępczej, która nie może zostać zakodowana, oraz indeks znaku w danych wejściowych. W procedurze obsługi wyjątków rezerwowych kodera wyjątek jest zgłaszany w tej metodzie. W przeciwnym razie metoda zwraca
true
wartość , jeśli zawiera rezerwę lubfalse
jeśli nie.Metoda GetNextChar , która jest wywoływana wielokrotnie przez koder, jeśli Fallback metoda zwraca wartość
true
. W kolejnych wywołaniach program obsługi powinien zwrócić każdy znak w buforze. Po zwróceniu wszystkich znaków powinna zostać zwrócona wartość U+0000. Procedura obsługi wyjątków zawsze zwraca wartość U+0000.Metoda MovePrevious , która próbuje przenieść wskaźnik do poprzedniej pozycji w buforze i wskazuje, czy przeniesienie zakończyło się pomyślnie. Procedura obsługi wyjątków zawsze zwraca wartość
false
.Właściwość Remaining , która wskazuje liczbę pozostałych znaków, które mają zostać zwrócone do kodera. Procedura obsługi rezerwowej wyjątku zawsze zwraca zero.
Konstruktory
EncoderFallbackBuffer() |
Inicjuje nowe wystąpienie klasy EncoderFallbackBuffer. |
Właściwości
Remaining |
Po zastąpieniu w klasie pochodnej pobiera liczbę znaków w bieżącym EncoderFallbackBuffer obiekcie, które pozostają do przetworzenia. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Fallback(Char, Char, Int32) |
Po zastąpieniu w klasie pochodnej przygotowuje bufor rezerwowy do obsługi określonej pary zastępczej. |
Fallback(Char, Int32) |
Podczas zastępowania w klasie pochodnej przygotowuje bufor rezerwowy do obsługi określonego znaku wejściowego. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetNextChar() |
Po zastąpieniu w klasie pochodnej pobiera następny znak w buforze rezerwowym. |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
MovePrevious() |
Podczas zastępowania w klasie pochodnej powoduje następne wywołanie GetNextChar() metody w celu uzyskania dostępu do pozycji znaku bufora danych, która jest wcześniejsza niż bieżąca pozycja znaku. |
Reset() |
Inicjuje wszystkie dane i informacje o stanie dotyczące tego bufora rezerwowego. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |