Sdílet prostřednictvím


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 kó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 sekvencí 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í.

Rozhraní .NET Framework poskytuje mechanismus zpracování selhání, který se označuje jako záložní, pokud nelze provést převod. 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í řešení může ke zpracování chyb převodu použít tři strategie:

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

  • Náhrada. 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 rozhraní .NET Framework EncoderReplacementFallback a EncoderReplacementFallbackBuffer třídy poskytují 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á indikuje, že znak nelze zakódovat a ukončí operaci kódování. V tomto případě musí obslužná rutina náhradní lokality poskytnout EncoderFallbackBuffer implementaci, i když nevrací řetězec kodéru. V rozhraní .NET Framework EncoderExceptionFallback poskytují třídy EncoderExceptionFallbackBuffer veřejnou záložní implementaci 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 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 pro návrat 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á do implementace záložní vyrovnávací paměti dva informace: znak nebo náhradní dvojici, která se nedá zakódovat, a index znaku ve vstupu. V obslužné rutině výjimky pro použití náhradního kodéru se v této metodě vyvolá výjimka. V opačném případě metoda vrátí true , pokud poskytuje náhradní, nebo false pokud ne.

  • Metoda GetNextChar , která je volána opakovaně kodérem, pokud Fallback metoda vrátí true. V následných voláních by obslužná rutina měla vracet každý znak v jeho vyrovnávací paměti. Když vrátí všechny znaky, měl by 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í bylo ú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. Obslužná rutina náhradní výjimky vždy vrátí nulu.

Konstruktory

Name Description
EncoderFallbackBuffer()

Inicializuje novou instanci EncoderFallbackBuffer třídy.

Vlastnosti

Name Description
Remaining

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

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven 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()

Získá Type aktuální instance.

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

Vytvoří mělkou kopii aktuálního 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 znak vyrovnávací paměti dat, která je před aktuální pozici znaku znaku.

Reset()

Inicializuje všechny informace o datech a stavu, které se týkají 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é