DecoderFallbackBuffer Osztály

Definíció

Olyan puffert biztosít, amely lehetővé teszi, hogy a tartalék kezelő egy másik sztringet adjon vissza egy dekódernek, ha nem tudja dekódolni a bemeneti bájtsorozatot.

public ref class DecoderFallbackBuffer abstract
public abstract class DecoderFallbackBuffer
type DecoderFallbackBuffer = class
Public MustInherit Class DecoderFallbackBuffer
Öröklődés
DecoderFallbackBuffer
Származtatott

Megjegyzések

A kódolás a Unicode-karakterek és a bájtok kódolt sorozata közötti leképezést határozza meg. A bemeneti bájtütemezést kimeneti karaktersé konvertáló dekódolási művelet meghiúsul, ha egy adott bájtütemezéshez nincs leképezés definiálva.

A .NET-keretrendszer egy tartaléknak nevezett hibakezelési mechanizmust biztosít, ha az átalakítás nem hajtható végre. Minden dekóder tartalék kezelőjének a következőket kell implementálnia:

  • Dekóder tartalék, amelyet az osztályból DecoderFallback származtatott osztály jelöl.

  • A dekóder tartalék puffere, amelyet az osztályból DecoderFallbackBuffer származtatott típus jelöl, amely visszaadhat egy sztringet az átalakítási művelethez.

A tartalékok három stratégiát használhatnak a konverziós hibák kezelésére:

  • Legjobban illeszkedő leképezés. A dekóder tartalék puffere visszaadhat egy sztringet, amely a bemeneti bájtsor közelítését jelöli. A .NET keretrendszer nem biztosít nyilvánosan legjobban illeszkedő DecoderFallbackBuffer implementációt.

  • Helyettesítés. A dekóder tartalék puffere visszaadhat egy sztringet, például kérdőjelet ("?"), amely azt jelzi, hogy a bájtsorozat nem dekódolható. A .NET-keretrendszerben a DecoderReplacementFallback és DecoderReplacementFallbackBuffer osztályok nyilvános tartalékpuffer-implementációt biztosítanak. Az osztály konstruktorával DecoderReplacementFallback definiálhatja a helyettesítő sztringet.

  • Kivétel. Az DecoderFallbackBuffer implementáció kivételt jelez, amely azt jelzi, hogy egy bájtsor nem dekódolható, és leállítja a dekódolási műveletet. Ebben az esetben a tartalék kezelőnek implementációt DecoderFallbackBuffer kell biztosítania, bár nem ad vissza sztringet a dekódernek. A .NET-keretrendszerben a DecoderExceptionFallback és DecoderExceptionFallbackBuffer osztályok nyilvános kivétel-tartalék implementációt biztosítanak, amely DecoderFallbackException dob, ha egy bájtsor nem dekódolható.

A implementáció puffere DecoderFallbackBuffer a dekóder tartalékra válaszul visszaadandó teljes sztringet jelöli. A megvalósítások általában állapotinformációkat is tartalmaznak, például a dekódolóhoz visszaadandó következő karakter indexét és a visszaadandó karakterek számát. Mivel DecoderFallbackBuffer ez egy absztrakt osztály, a származtatott osztályoknak legalább a következő tagok implementálásához van szükség:

  • A Fallback dekóder által meghívott metódus, ha nem tud bájtütemezést dekódolni. A dekóder két információt ad át a tartalék puffer implementációjának: egy tömb, amely tartalmazza a nem dekódolható bájtokat és a bemeneti bájttömb első bájtjának indexét. A dekóder tartalék kivételkezelőjében a kivétel ebben a metódusban jelenik meg. Ellenkező esetben a metódus akkor tér vissza true , ha tartalékot biztosít, vagy false ha nem.

  • A GetNextChar metódust, amelyet a dekóder ismételten hív meg, ha a Fallback metódus visszatér true. Egymást követő hívások esetén a kezelőnek minden karaktert vissza kell adnia a pufferében. Ha az összes karaktert visszaadta, az U+0000 értéket kell visszaadnia. A kivétel tartalék kezelője mindig U+0000 értéket ad vissza.

  • A MovePrevious metódus, amely megpróbálja áthelyezni az egérmutatót a puffer előző helyére, és jelzi, hogy az áthelyezés sikeres volt-e. A kivételkezelő mindig ad vissza false.

  • A Remaining tulajdonság, amely azt jelzi, hogy hány karaktert kell visszaadni a dekódernek. A kivétel tartalék kezelője mindig nullát ad vissza.

Konstruktorok

Name Description
DecoderFallbackBuffer()

Inicializálja a DecoderFallbackBuffer osztály új példányát.

Tulajdonságok

Name Description
Remaining

Ha egy származtatott osztályban felül van bírálva, az aktuális DecoderFallbackBuffer objektumban a feldolgozandó karakterek számát kapja meg.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
Fallback(Byte[], Int32)

Ha egy származtatott osztályban felül van bírálva, előkészíti a tartalék puffert a megadott bemeneti bájtütemezés kezelésére.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetNextChar()

Ha egy származtatott osztályban felül van bírálva, lekéri a tartalék puffer következő karakterét.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MovePrevious()

Ha egy származtatott osztályban felül van bírálva, a metódus következő hívása GetNextChar() az aktuális karakterpozíció előtti adatpuffer karakterpozíciójának elérését eredményezi.

Reset()

Inicializálja a tartalék pufferhez kapcsolódó összes adatot és állapotinformációt.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes:

Lásd még