EncoderFallbackBuffer Osztály

Definíció

Olyan puffert biztosít, amely lehetővé teszi, hogy a tartalék kezelő egy másik sztringet adjon vissza egy kódolónak, ha nem tud bemeneti karaktert kódolni.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Öröklődés
EncoderFallbackBuffer
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. Egy kódolási művelet, amely egy bemeneti karaktert kimeneti bájtsorsá alakít át, meghiúsul, ha egy adott karakterhez 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 kódoló tartalék kezelőjének a következőket kell implementálnia:

  • Kódoló tartalék, amelyet az osztályból EncoderFallback származtatott osztály jelöl.

  • Kódoló tartalék puffere, amelyet az osztályból EncoderFallbackBuffer származtatott típus jelöl, amely visszaadhat egy sztringet a konvertálá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 kódoló tartalék puffere visszaadhat egy sztringet, amely a bemeneti karakterhez közeli közelítést jelöl. A .NET keretrendszer nem biztosít nyilvánosan legjobban illeszkedő EncoderFallbackBuffer implementációt.

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

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

A implementáció puffere az egész sztringet EncoderFallbackBuffer jelöli, amelyet vissza kell adni a kódolónak egy kódoló tartalékra válaszul. A implementációk általában az állapotinformációkat is tartalmazzák, például a következő karakter indexét a kódolóhoz való visszatéréshez, valamint a visszaadandó karakterek számát. Mivel EncoderFallbackBuffer 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 túlterhelt Fallback metódus, amelyet a kódoló hív meg, ha nem tud karaktert kódolni. A kódoló két információt ad át a tartalék puffer implementációjának: a nem kódolható karakter vagy helyettesítő pár, valamint a bemeneti karakter indexe. A kódoló 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 kódoló 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ételkezelő 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 kódolónak. A kivétel tartalék kezelője mindig nullát ad vissza.

Konstruktorok

Name Description
EncoderFallbackBuffer()

Inicializálja a EncoderFallbackBuffer 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 EncoderFallbackBuffer 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(Char, Char, Int32)

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

Fallback(Char, Int32)

Származtatott osztály felülírásakor előkészíti a tartalék puffert a megadott bemeneti karakter 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