Condividi tramite


EncoderFallbackBuffer Classe

Definizione

Fornisce un buffer che consente a un gestore di fallback di restituire una stringa alternativa a un codificatore quando non è in grado di codificare un carattere di input.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Ereditarietà
EncoderFallbackBuffer
Derivato

Commenti

Una codifica definisce un mapping tra un carattere Unicode e una sequenza codificata di byte. Un'operazione di codifica, che converte un carattere di input in una sequenza di byte di output, non riesce se non viene definito alcun mapping per un carattere specifico.

La .NET Framework fornisce un meccanismo di gestione degli errori, denominato fallback, se non è possibile eseguire una conversione. Tutti i gestori di fallback del codificatore devono implementare quanto segue:

  • Fallback del codificatore, rappresentato da una classe derivata dalla EncoderFallback classe .

  • Buffer di fallback del codificatore, rappresentato da un tipo derivato dalla EncoderFallbackBuffer classe che può restituire una stringa all'operazione di conversione.

I fallback possono usare tre strategie per gestire gli errori di conversione:

  • Mapping ottimale. Il buffer di fallback del codificatore può restituire una stringa che rappresenta un'approssimazione vicina al carattere di input. Il .NET Framework non fornisce un'implementazione più adatta al EncoderFallbackBuffer pubblico.

  • Sostituzione. Il buffer di fallback del codificatore può restituire una stringa, ad esempio un punto interrogativo ("?"), che indica che non è stato possibile codificare un carattere. Nelle .NET Framework le EncoderReplacementFallback classi e EncoderReplacementFallbackBuffer forniscono un'implementazione del buffer di fallback di sostituzione pubblica. Il costruttore della EncoderReplacementFallback classe consente di definire la stringa di sostituzione.

  • Eccezione. L'implementazione EncoderFallbackBuffer genera un'eccezione, che indica che un carattere non può essere codificato e termina l'operazione di codifica. In questo caso, il gestore di fallback deve fornire un'implementazione, anche se non restituisce una EncoderFallbackBuffer stringa al codificatore. Nella .NET Framework le EncoderExceptionFallback classi e EncoderExceptionFallbackBuffer forniscono un'implementazione di fallback di eccezione pubblica che genera un EncoderFallbackException valore quando non è possibile codificare un carattere.

Il buffer in un'implementazione EncoderFallbackBuffer rappresenta l'intera stringa da restituire al codificatore in risposta a un fallback del codificatore. In genere, le implementazioni includono anche informazioni sullo stato, ad esempio l'indice del carattere successivo da restituire al codificatore e il numero di caratteri rimanenti da restituire. Poiché EncoderFallbackBuffer è una classe astratta, è necessario che le classi derivate implementino i membri seguenti almeno:

  • Metodo di overload Fallback , chiamato dal codificatore quando non può codificare un carattere. Il codificatore passa due informazioni all'implementazione del buffer di fallback: la coppia di caratteri o surrogati che non è stato possibile codificare e l'indice del carattere nell'input. In un gestore di eccezioni di fallback del codificatore viene generata l'eccezione in questo metodo. In caso contrario, il metodo restituisce true se fornisce un fallback o false se non lo fa.

  • Metodo GetNextChar chiamato ripetutamente dal codificatore se il Fallback metodo restituisce true. Nelle chiamate successive, il gestore deve restituire ogni carattere nel relativo buffer. Quando ha restituito tutti i caratteri, dovrebbe restituire U+0000. Un gestore di eccezioni restituisce sempre U+0000.

  • Metodo MovePrevious , che tenta di spostare il puntatore alla posizione precedente nel buffer e indica se lo spostamento ha avuto esito positivo. Un gestore di eccezioni restituisce falsesempre .

  • Proprietà Remaining che indica il numero di caratteri rimanenti da restituire al codificatore. Un gestore di fallback di eccezione restituisce sempre zero.

Costruttori

EncoderFallbackBuffer()

Inizializza una nuova istanza della classe EncoderFallbackBuffer.

Proprietà

Remaining

Quando sottoposto a override in una classe derivata, ottiene il numero di caratteri nell'oggetto EncoderFallbackBuffer corrente ancora da elaborare.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Fallback(Char, Char, Int32)

Quando sottoposto a override in una classe derivata, prepara il buffer di fallback per la gestione della coppia di surrogati specificata.

Fallback(Char, Int32)

Quando sottoposto a override in una classe derivata, prepara il buffer di fallback per la gestione del carattere di input specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetNextChar()

Quando sottoposto a override in una classe derivata, recupera il carattere successivo nel buffer di fallback.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MovePrevious()

Quando sottoposto a override in una classe derivata, genera la chiamata successiva al metodo GetNextChar() per accedere alla posizione del carattere del buffer di dati precedente al carattere corrente.

Reset()

Inizializza tutti i dati e le informazioni sullo stato relativamente a questo buffer di fallback.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche