DecoderFallbackBuffer Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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, vagyfalseha 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) |