EncoderFallbackBuffer Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een buffer waarmee een terugvalhandler een alternatieve tekenreeks kan retourneren aan een encoder wanneer een invoerteken niet kan worden gecodeerd.
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- Overname
-
EncoderFallbackBuffer
- Afgeleid
Opmerkingen
Een codering definieert een toewijzing tussen een Unicode-teken en een gecodeerde reeks bytes. Een coderingsbewerking, waarmee een invoerteken wordt geconverteerd naar een bytereeks voor uitvoer, mislukt als er geen toewijzing is gedefinieerd voor een bepaald teken.
.NET Framework biedt een mechanisme voor foutafhandeling, een terugval genoemd, als een conversie niet kan worden uitgevoerd. Alle encoder-terugvalhandlers moeten het volgende implementeren:
Een encoderterugval, die wordt vertegenwoordigd door een klasse die is afgeleid van de EncoderFallback klasse.
Een terugvalbuffer voor encoders, die wordt vertegenwoordigd door een type dat is afgeleid van de EncoderFallbackBuffer klasse die een tekenreeks kan retourneren aan de conversiebewerking.
Fallbacks kunnen drie strategieën gebruiken om conversiefouten af te handelen:
Best passende toewijzing. De terugvalbuffer van de encoder kan een tekenreeks retourneren die een nauwe benadering van het invoerteken vertegenwoordigt. .NET Framework biedt geen openbare best passende EncoderFallbackBuffer-implementatie.
Vervanging. De terugvalbuffer van de encoder kan een tekenreeks retourneren, zoals een vraagteken ("?"), dat aangeeft dat een teken niet kan worden gecodeerd. In het .NET Framework bieden de klassen EncoderReplacementFallback en EncoderReplacementFallbackBuffer een openbare vervangingsbuffer. Met de constructor van de EncoderReplacementFallback klasse kunt u de vervangende tekenreeks definiëren.
Uitzondering. De EncoderFallbackBuffer implementatie genereert een uitzondering, wat aangeeft dat een teken niet kan worden gecodeerd en de coderingsbewerking wordt beëindigd. In dit geval moet de terugvalhandler een EncoderFallbackBuffer implementatie bieden, hoewel er geen tekenreeks naar de encoder wordt geretourneerd. In het .NET Framework bieden de klassen EncoderExceptionFallback en EncoderExceptionFallbackBuffer een openbare uitzonderingsimplementatie waarmee een EncoderFallbackException wordt gegenereerd wanneer een teken niet kan worden gecodeerd.
De buffer in een EncoderFallbackBuffer implementatie vertegenwoordigt de volledige tekenreeks die moet worden geretourneerd naar de encoder als reactie op een terugval van een encoder. Over het algemeen bevatten implementaties ook statusinformatie, zoals de index van het volgende teken om terug te keren naar de encoder en het aantal resterende tekens dat moet worden geretourneerd. Omdat EncoderFallbackBuffer dit een abstracte klasse is, moeten afgeleide klassen minimaal de volgende leden implementeren:
De overbelaste Fallback methode, die wordt aangeroepen door de encoder wanneer een teken niet kan worden gecodeerd. De encoder geeft twee stukjes informatie door aan de terugvalbuffer-implementatie: het teken of surrogaatpaar dat niet kan worden gecodeerd en de index van het teken in de invoer. In een encoder-terugval-uitzonderingshandler wordt de uitzondering gegenereerd in deze methode. Anders retourneert
truede methode als deze een terugval biedt, offalseals dat niet het geval is.De GetNextChar methode, die herhaaldelijk wordt aangeroepen door de encoder 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 uitzonderingshandler 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 encoder. Een terugvalhandler voor uitzonderingen retourneert altijd nul.
Constructors
| Name | Description |
|---|---|
| EncoderFallbackBuffer() |
Initialiseert een nieuw exemplaar van de EncoderFallbackBuffer klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Remaining |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt het aantal tekens in het huidige EncoderFallbackBuffer 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(Char, Char, Int32) |
Wanneer deze wordt overschreven in een afgeleide klasse, bereidt u de terugvalbuffer voor om het opgegeven surrogaatpaar te verwerken. |
| Fallback(Char, Int32) |
Wanneer deze wordt overschreven in een afgeleide klasse, bereidt u de terugvalbuffer voor om het opgegeven invoerteken 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) |