EncoderFallbackBuffer Třída

Definice

Poskytuje vyrovnávací paměť, která umožňuje náhradní obslužné rutině vrátit alternativní řetězec kodéru, když nemůže zakódovat vstupní znak.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Dědičnost
EncoderFallbackBuffer
Odvozené

Poznámky

Kódování definuje mapování mezi znakem Unicode a zakódovanou posloupností bajtů. Operace kódování, která převede vstupní znak na výstupní bajtovou sekvenci, selže, pokud pro konkrétní znak není definováno žádné mapování.

.NET Framework poskytuje mechanismus zpracování selhání, označovaný jako náhradní, pokud převod nelze provést. Všechny obslužné rutiny pro náhradní kodér musí implementovat následující:

  • Záložní kodér, který je reprezentován třídou odvozenou z EncoderFallback třídy.

  • Záložní vyrovnávací paměť kodéru, která je reprezentována typem odvozeným z EncoderFallbackBuffer třídy, která může vrátit řetězec do operace převodu.

Náhradní funkce můžou používat tři strategie ke zpracování selhání převodu:

  • Mapování se nejlépe hodí. Záložní vyrovnávací paměť kodéru může vrátit řetězec, který představuje blízkou aproximaci vstupního znaku. .NET Framework neposkytuje veřejnou implementaci, která nejlépe vyhovujeEncoderFallbackBuffer.

  • Náhradní. Záložní vyrovnávací paměť kodéru může vrátit řetězec, například otazník (?), který označuje, že znak nelze zakódovat. V .NET Framework EncoderReplacementFallback poskytují třídy EncoderReplacementFallbackBuffer implementaci záložní vyrovnávací paměti pro veřejnou náhradu. Konstruktor EncoderReplacementFallback třídy umožňuje definovat náhradní řetězec.

  • Výjimka. Implementace EncoderFallbackBuffer vyvolá výjimku, která značí, že znak nelze zakódovat a ukončí operaci kódování. V tomto případě musí náhradní obslužná rutina poskytnout EncoderFallbackBuffer implementaci, i když nevrací řetězec kodéru. V .NET Framework EncoderExceptionFallback poskytují třídy EncoderExceptionFallbackBuffer veřejnou implementaci náhradní výjimky, která vyvoláEncoderFallbackException, když znak nelze zakódovat.

Vyrovnávací paměť v EncoderFallbackBuffer implementaci představuje celý řetězec, který se má vrátit do kodéru v reakci na záložní kodér. Obecně platí, že implementace zahrnují také informace o stavu, například index dalšího znaku, který se vrátí do kodéru, a počet zbývajících znaků, které se mají vrátit. Vzhledem k tomu EncoderFallbackBuffer , že je abstraktní třída, vyžaduje odvozené třídy k implementaci následujících členů minimálně:

  • Přetížená Fallback metoda, která je volána kodérem, když nemůže kódovat znak. Kodér předává do implementace záložní vyrovnávací paměti dva informace: znak nebo náhradní pár, který nelze zakódovat, a index znaku ve vstupu. V obslužné rutině výjimky pro náhradní kodér je v této metodě vyvoláná výjimka. Jinak metoda vrátí true , pokud poskytuje náhradní nebo false pokud ne.

  • Metoda GetNextChar , která se volá opakovaně kodérem, pokud Fallback metoda vrátí true. V následných voláních by obslužná rutina měla vrátit každý znak ve své vyrovnávací paměti. Když se vrátí všechny znaky, měl by se vrátit U+0000. Obslužná rutina výjimky vždy vrátí U+0000.

  • Metoda MovePrevious , která se pokusí přesunout ukazatel na předchozí pozici ve vyrovnávací paměti a označuje, zda přesunutí proběhlo úspěšně. Obslužná rutina výjimky vždy vrátí false.

  • Vlastnost Remaining , která označuje počet zbývajících znaků, které se mají vrátit do kodéru. Náhradní obslužná rutina výjimky vždy vrátí nulu.

Konstruktory

EncoderFallbackBuffer()

Inicializuje novou instanci EncoderFallbackBuffer třídy.

Vlastnosti

Remaining

Při přepsání v odvozené třídě získá počet znaků v aktuálním EncoderFallbackBuffer objektu, který zůstane zpracován.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Fallback(Char, Char, Int32)

Při přepsání v odvozené třídě připraví záložní vyrovnávací paměť pro zpracování zadaného náhradního páru.

Fallback(Char, Int32)

Při přepsání v odvozené třídě připraví záložní vyrovnávací paměť pro zpracování zadaného vstupního znaku.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetNextChar()

Při přepsání v odvozené třídě načte další znak v záložní vyrovnávací paměti.

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
MovePrevious()

Při přepsání v odvozené třídě způsobí další volání GetNextChar() metody přístup k pozici znaku vyrovnávací paměti dat, která je před aktuální pozici znaku znaku.

Reset()

Inicializuje všechny informace o datech a stavu vztahujících se k této záložní vyrovnávací paměti.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také