Freigeben über


EncoderFallbackBuffer Klasse

Definition

Stellt einen Puffer bereit, der es einem Fallbackhandler ermöglicht, eine alternative Zeichenfolge an einen Encoder zurückzugeben, wenn kein Eingabezeichen 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, der ein Eingabezeichen in eine Ausgabebytesequenz konvertiert, schlägt fehl, wenn keine Zuordnung für ein bestimmtes Zeichen definiert ist.

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

  • Ein Encoder-Fallback, der durch eine von der EncoderFallback Klasse abgeleitete Klasse dargestellt wird.

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

Fallbacks können drei Strategien zum Behandeln von Konvertierungsfehlern verwenden:

  • Optimale Zuordnung. Der Encoder-Fallbackpuffer kann eine Zeichenfolge zurückgeben, die eine enge Annäherung an das Eingabezeichen darstellt. .NET Framework bietet keine public best-fit-Implementierung EncoderFallbackBuffer .

  • Ersatz. Der Encoder-Fallbackpuffer kann eine Zeichenfolge zurückgeben, z. B. ein Fragezeichen ("?"), das angibt, dass ein Zeichen nicht codiert werden konnte. In .NET Framework stellen die EncoderReplacementFallback Klassen EncoderReplacementFallbackBuffer eine Implementierung des öffentlichen Ersatzpuffers 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. In .NET Framework stellen die EncoderExceptionFallback Klassen EncoderExceptionFallbackBuffer eine öffentliche Ausnahmefallbackimplementierung bereit, die ausgelöst EncoderFallbackException wird, wenn ein Zeichen nicht codiert werden kann.

Der Puffer in einer EncoderFallbackBuffer Implementierung stellt die gesamte Zeichenfolge dar, die als Reaktion auf einen Encoder-Fallback an den Encoder zurückgegeben werden soll. Im Allgemeinen enthalten Implementierungen auch Zustandsinformationen, z. B. den Index des nächsten Zeichens, um zum Encoder zurückzukehren, und die Anzahl der verbleibenden Zeichen, die zurückgegeben werden sollen. Da EncoderFallbackBuffer es sich um eine abstrakte Klasse handelt, 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 Informationen an die Fallbackpufferimplementierung: das Zeichen- oder Ersatzpaar, das nicht codiert werden konnte, und den Index des Zeichens in der Eingabe. In einem Encoder-Fallback-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ückgegeben wird true. Bei aufeinander folgenden Aufrufen sollte der Handler jedes Zeichen im 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

Name Beschreibung
EncoderFallbackBuffer()

Initialisiert eine neue Instanz der EncoderFallbackBuffer-Klasse.

Eigenschaften

Name Beschreibung
Remaining

Beim Überschreiben in einer abgeleiteten Klasse ruft die Anzahl der Zeichen im aktuellen EncoderFallbackBuffer Objekt ab, die verarbeitet werden sollen.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

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

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Fallbackpuffer für die Behandlung des angegebenen Ersatzpaars vorbereitet.

Fallback(Char, Int32)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Fallbackpuffer für die Verarbeitung des angegebenen Eingabezeichens vorbereitet.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetNextChar()

Beim Überschreiben in einer abgeleiteten Klasse ruft das nächste Zeichen im Fallbackpuffer ab.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MovePrevious()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der nächste Aufruf der GetNextChar() Methode auf die Position des Datenpufferzeichens zugegriffen, die sich vor der aktuellen Zeichenposition befindet.

Reset()

Initialisiert alle Daten- und Statusinformationen, die sich auf diesen Fallbackpuffer beziehen.

ToString()

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

(Geerbt von Object)

Gilt für:

Weitere Informationen