Freigeben über


EncoderFallbackBuffer Klasse

Definition

Stellt einen Puffer bereit, der einen Fallback-Handler zulässt, der eine alternative Zeichenfolge an einen Encoder zurückzugibt, wenn eine Eingabezeichen nicht codiert werden kann.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Vererbung
EncoderFallbackBuffer
Abgeleitet

Hinweise

Eine Codierung definiert eine Zuordnung zwischen einem Unicode-Zeichen und einer codierten Bytesequenz. Ein Codierungsvorgang, bei dem ein Eingabezeichen in eine Ausgabebytesequenz konvertiert wird, schlägt fehl, wenn keine Zuordnung für ein bestimmtes Zeichen definiert ist.

Die .NET Framework stellt einen Fehlerbehandlungsmechanismus bereit, der als Fallback bezeichnet wird, wenn eine Konvertierung nicht ausgeführt werden kann. Alle Fallbackhandler für Encoder müssen Folgendes implementieren:

  • Ein Encoderfallback, das durch eine von der EncoderFallback -Klasse abgeleitete Klasse dargestellt wird.

  • Ein Encoderfallbackpuffer, der durch einen von der -Klasse abgeleiteten Typ dargestellt wird, der EncoderFallbackBuffer eine Zeichenfolge an den Konvertierungsvorgang zurückgeben kann.

Fallbacks können drei Strategien verwenden, um Konvertierungsfehler zu behandeln:

  • Am besten geeignete Zuordnung. Der Encoderfallbackpuffer kann eine Zeichenfolge zurückgeben, die eine enge Näherung an das Eingabezeichen darstellt. Die .NET Framework bietet keine öffentliche, am besten geeignete EncoderFallbackBuffer Implementierung.

  • Ersatz. Der Encoderfallbackpuffer kann eine Zeichenfolge zurückgeben, z. B. ein Fragezeichen ("?"), das angibt, dass ein Zeichen nicht codiert werden konnte. In der .NET Framework stellen die EncoderReplacementFallback Klassen und EncoderReplacementFallbackBuffer eine öffentliche Ersatz-Fallbackpufferimplementierung bereit. Mit dem Konstruktor der EncoderReplacementFallback -Klasse können Sie die Ersetzungszeichenfolge definieren.

  • Ausnahme. Die EncoderFallbackBuffer Implementierung löst eine Ausnahme aus, die angibt, dass ein Zeichen nicht codiert werden kann, und beendet den Codierungsvorgang. In diesem Fall muss der Fallbackhandler eine EncoderFallbackBuffer Implementierung bereitstellen, obwohl er keine Zeichenfolge an den Encoder zurückgibt. Im .NET Framework stellen die EncoderExceptionFallback Klassen und EncoderExceptionFallbackBuffer eine öffentliche Ausnahmefallbackimplementierung bereit, die eine EncoderFallbackException auslöst, wenn ein Zeichen nicht codiert werden kann.

Der Puffer in einer EncoderFallbackBuffer Implementierung stellt die gesamte Zeichenfolge dar, die als Reaktion auf ein Encoderfallback an den Encoder zurückgegeben werden soll. Im Allgemeinen enthalten Implementierungen auch Zustandsinformationen, z. B. den Index des nächsten Zeichens, das an den Encoder zurückgegeben werden soll, und die Anzahl der verbleibenden Zeichen, die zurückgegeben werden sollen. Da EncoderFallbackBuffer eine abstrakte Klasse ist, müssen abgeleitete Klassen mindestens die folgenden Member implementieren:

  • Die überladene Fallback Methode, die vom Encoder aufgerufen wird, wenn kein Zeichen codiert werden kann. Der Encoder übergibt zwei Informationselemente an die Fallbackpufferimplementierung: das Zeichen- oder Ersatzzeichenpaar, das nicht codiert werden konnte, und den Index des Zeichens in der Eingabe. In einem Encoderfallback-Ausnahmehandler wird die Ausnahme in dieser Methode ausgelöst. Andernfalls gibt die Methode zurück true , wenn sie einen Fallback bereitstellt oder false nicht.

  • Die GetNextChar -Methode, die vom Encoder wiederholt aufgerufen wird, wenn die Fallback -Methode zurückgibt true. Bei aufeinander folgenden Aufrufen sollte der Handler jedes Zeichen in seinem Puffer zurückgeben. Wenn alle Zeichen zurückgegeben wurden, sollte U+0000 zurückgegeben werden. Ein Ausnahmehandler gibt immer U+0000 zurück.

  • Die MovePrevious -Methode, die versucht, den Zeiger an die vorherige Position im Puffer zu verschieben, und gibt an, ob die Verschiebung erfolgreich war. Ein Ausnahmehandler gibt immer zurück false.

  • Die Remaining -Eigenschaft, die die Anzahl der verbleibenden Zeichen angibt, die an den Encoder zurückgegeben werden sollen. Ein Ausnahmefallbackhandler gibt immer null zurück.

Konstruktoren

EncoderFallbackBuffer()

Initialisiert eine neue Instanz der EncoderFallbackBuffer-Klasse.

Eigenschaften

Remaining

Ruft beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen im aktuellen EncoderFallbackBuffer-Objekt ab, die noch zu verarbeiten sind.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fallback(Char, Char, Int32)

Bereitet beim Überschreiben in einer abgeleiteten Klasse den Fallbackpuffer darauf vor, das angegebene Ersatzzeichenpaar zu behandeln.

Fallback(Char, Int32)

Bereitet beim Überschreiben in einer abgeleiteten Klasse den Fallbackpuffer darauf vor, das angegebene Eingabezeichen zu behandeln.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetNextChar()

Ruft beim Überschreiben in einer abgeleiteten Klasse das nächste Zeichen im Fallbackpuffer ab.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MovePrevious()

Veranlasst beim Überschreiben in einer abgeleiteten Klasse, dass der nächste Aufruf an die GetNextChar()-Methode auf die Datenpufferzeichenposition vor der aktuellen Zeichenposition zugreift.

Reset()

Initialisiert alle Daten und Zustandsinformationen, die diesen Fallbackpuffer betreffen.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen