DecoderFallbackBuffer Klas

Definitie

Biedt een buffer waarmee een terugvalhandler een alternatieve tekenreeks naar een decoder kan retourneren wanneer een invoer bytereeks niet kan worden gedecodeerd.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Overname
DecoderFallbackBuffer
Afgeleid

Opmerkingen

Een codering definieert een toewijzing tussen een Unicode-teken en een gecodeerde reeks bytes. Een decoderingsbewerking, die een invoer bytereeks converteert naar een uitvoerteken, mislukt als er geen toewijzing is gedefinieerd voor een bepaalde bytereeks.

.NET Framework biedt een mechanisme voor foutafhandeling, een terugval genoemd, als een conversie niet kan worden uitgevoerd. Alle decoder terugvalhandlers moeten het volgende implementeren:

  • Een decoderterugval, die wordt vertegenwoordigd door een klasse die is afgeleid van de DecoderFallback klasse.

  • Een buffer voor terugval van decoders, die wordt vertegenwoordigd door een type dat is afgeleid van de DecoderFallbackBuffer klasse die een tekenreeks kan retourneren aan de conversiebewerking.

Fallbacks kunnen drie strategieën gebruiken om conversiefouten af te handelen:

  • Best passende toewijzing. De buffer voor terugval van decoder kan een tekenreeks retourneren die een nauwe benadering van de invoer-bytereeks vertegenwoordigt. .NET Framework biedt geen openbare best passende DecoderFallbackBuffer-implementatie.

  • Vervanging. De buffer voor terugval van decoder kan een tekenreeks retourneren, zoals een vraagteken ('?'), dat aangeeft dat een bytereeks niet kan worden gedecodeerd. In het .NET Framework bieden de klassen DecoderReplacementFallback en DecoderReplacementFallbackBuffer een openbare vervangingsbuffer. Met de constructor van de DecoderReplacementFallback klasse kunt u de vervangende tekenreeks definiëren.

  • Uitzondering. De DecoderFallbackBuffer implementatie genereert een uitzondering, wat aangeeft dat een bytereeks niet kan worden gedecodeerd en de decoderingsbewerking wordt beëindigd. In dit geval moet de terugvalhandler een DecoderFallbackBuffer implementatie bieden, hoewel er geen tekenreeks naar de decoder wordt geretourneerd. In het .NET Framework bieden de klassen DecoderExceptionFallback en DecoderExceptionFallbackBuffer een openbare implementatie van uitzonderingen die een DecoderFallbackException genereert wanneer een bytereeks niet kan worden gedecodeerd.

De buffer in een DecoderFallbackBuffer implementatie vertegenwoordigt de volledige tekenreeks die moet worden geretourneerd naar de decoder als reactie op een terugval van een decoder. Over het algemeen bevatten implementaties ook statusinformatie, zoals de index van het volgende teken om terug te keren naar de decoder en het aantal resterende tekens dat moet worden geretourneerd. Omdat DecoderFallbackBuffer dit een abstracte klasse is, moeten afgeleide klassen minimaal de volgende leden implementeren:

  • De Fallback methode, die door de decoder wordt aangeroepen wanneer een bytereeks niet kan worden gedecodeerd. De decoder geeft twee stukjes informatie door aan de terugvalbuffer-implementatie: een matrix met de bytes die niet kunnen worden gedecodeerd en de index van de eerste byte in de invoerbytematrix. In een decoder-terugval-uitzonderingshandler wordt de uitzondering gegenereerd in deze methode. Anders retourneert true de methode als deze een terugval biedt, of false als dat niet het geval is.

  • De GetNextChar methode, die herhaaldelijk wordt aangeroepen door de decoder als de Fallback methode retourneert true. In opeenvolgende aanroepen moet de handler elk teken in de buffer retourneren. Wanneer alle tekens zijn geretourneerd, moet U+0000 worden geretourneerd. Een terugvalhandler voor uitzonderingen retourneert altijd U+0000.

  • De MovePrevious methode, die de aanwijzer naar de vorige positie in de buffer probeert te verplaatsen en aangeeft of de verplaatsing is geslaagd. Een uitzonderingshandler retourneert falsealtijd .

  • De Remaining eigenschap, die het aantal resterende tekens aangeeft dat moet worden geretourneerd aan de decoder. Een terugvalhandler voor uitzonderingen retourneert altijd nul.

Constructors

Name Description
DecoderFallbackBuffer()

Initialiseert een nieuw exemplaar van de DecoderFallbackBuffer klasse.

Eigenschappen

Name Description
Remaining

Wanneer deze wordt overschreven in een afgeleide klasse, wordt het aantal tekens in het huidige DecoderFallbackBuffer object opgehaald dat nog moet worden verwerkt.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Fallback(Byte[], Int32)

Wanneer deze wordt overschreven in een afgeleide klasse, bereidt u de terugvalbuffer voor om de opgegeven bytevolgorde voor invoer te verwerken.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetNextChar()

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u het volgende teken op in de terugvalbuffer.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MovePrevious()

Wanneer deze wordt overschreven in een afgeleide klasse, wordt de volgende aanroep van de GetNextChar() methode veroorzaakt om toegang te krijgen tot de positie van het gegevensbufferteken dat vóór de huidige tekenpositie valt.

Reset()

Initialiseert alle gegevens en statusinformatie met betrekking tot deze terugvalbuffer.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook