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, ha esito negativo se non viene definito alcun mapping per un determinato carattere.

.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. .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. In .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 EncoderFallbackBuffer , anche se non restituisce una stringa al codificatore. In .NET Framework le EncoderExceptionFallback classi e EncoderExceptionFallbackBuffer forniscono un'implementazione di fallback di eccezione pubblica che genera un'eccezione EncoderFallbackException 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, richiede che le classi derivate implementino almeno i membri seguenti:

  • Metodo di Fallback overload, chiamato dal codificatore quando non è in grado di 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, l'eccezione viene generata in questo metodo. In caso contrario, il metodo restituisce true se fornisce un fallback o false in caso contrario.

  • 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, deve restituire U+0000. Un gestore eccezioni restituisce sempre U+0000.

  • Il MovePrevious metodo , che tenta di spostare il puntatore alla posizione precedente nel buffer e indica se lo spostamento è riuscito. Un gestore 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

Nome Descrizione
EncoderFallbackBuffer()

Inizializza una nuova istanza della classe EncoderFallbackBuffer.

Proprietà

Nome Descrizione
Remaining

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

Metodi

Nome Descrizione
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 gestire la coppia di surrogati specificata.

Fallback(Char, Int32)

Quando sottoposto a override in una classe derivata, prepara il buffer di fallback per gestire il 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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MovePrevious()

Quando sottoposto a override in una classe derivata, fa sì che la chiamata successiva al GetNextChar() metodo acceda alla posizione del carattere del buffer di dati precedente alla posizione del carattere corrente.

Reset()

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

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche