EncoderFallbackBuffer Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en buffert som gör att en reservhanterare kan returnera en alternativ sträng till en kodare när den inte kan koda ett indatatecken.
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- Arv
-
EncoderFallbackBuffer
- Härledda
Kommentarer
En kodning definierar en mappning mellan ett Unicode-tecken och en kodad sekvens med byte. En kodningsåtgärd, som konverterar ett indatatecken till en utdatabytesekvens, misslyckas om ingen mappning har definierats för ett visst tecken.
.NET Framework tillhandahåller en mekanism för felhantering, som kallas återställning, om en konvertering inte kan utföras. Alla återställningshanterare för kodare måste implementera följande:
En kodaråterställning, som representeras av en klass som härleds från EncoderFallback klassen.
En återställningsbuffert för kodare, som representeras av en typ som härleds från EncoderFallbackBuffer klassen och som kan returnera en sträng till konverteringsåtgärden.
Återställningar kan använda tre strategier för att hantera konverteringsfel:
Mappning med bästa passform. Återställningsbufferten för kodaren kan returnera en sträng som representerar en nära uppskattning av indatatecknet. .NET Framework tillhandahåller inte en offentlig EncoderFallbackBuffer implementering.
Ersättning. Återställningsbufferten för kodaren kan returnera en sträng, till exempel ett frågetecken ("?"), som anger att ett tecken inte kunde kodas. I .NET Framework tillhandahåller klasserna EncoderReplacementFallback och EncoderReplacementFallbackBuffer en offentlig återställningsbuffertimplementering. Med konstruktorn för EncoderReplacementFallback klassen kan du definiera ersättningssträngen.
Undantag. Implementeringen EncoderFallbackBuffer genererar ett undantag som anger att ett tecken inte kan kodas och avslutar kodningsåtgärden. I det här fallet måste reservhanteraren tillhandahålla en EncoderFallbackBuffer implementering, även om den inte returnerar en sträng till kodaren. I .NET Framework tillhandahåller klasserna EncoderExceptionFallback och EncoderExceptionFallbackBuffer en offentlig undantagsåterställningsimplementering som genererar en EncoderFallbackException när ett tecken inte kan kodas.
Bufferten i en EncoderFallbackBuffer implementering representerar hela strängen som ska returneras till kodaren som svar på en kodaråterställning. I allmänhet innehåller implementeringar även tillståndsinformation, till exempel indexet för nästa tecken för att återgå till kodaren och antalet återstående tecken som ska returneras. Eftersom EncoderFallbackBuffer är en abstrakt klass krävs härledda klasser för att implementera följande medlemmar minst:
Den överlagrade Fallback metoden, som anropas av kodaren när den inte kan koda ett tecken. Kodaren skickar två informationsdelar till återställningsbuffertimplementeringen: det tecken eller surrogatpar som inte kunde kodas och indexet för tecknet i indata. I en undantagshanterare för kodare genereras undantaget i den här metoden. Annars returnerar
truemetoden om den ger en återställning ellerfalseom den inte gör det.Metoden GetNextChar , som anropas upprepade gånger av kodaren om Fallback metoden returnerar
true. I efterföljande anrop ska hanteraren returnera varje tecken i bufferten. När alla tecken returneras ska den returnera U+0000. En undantagshanterare returnerar alltid U+0000.Metoden MovePrevious , som försöker flytta pekaren till den tidigare positionen i bufferten och anger om flytten lyckades. En undantagshanterare returnerar
falsealltid .Egenskapen Remaining , som anger antalet återstående tecken som ska returneras till kodaren. En undantagsåterställningshanterare returnerar alltid noll.
Konstruktorer
| Name | Description |
|---|---|
| EncoderFallbackBuffer() |
Initierar en ny instans av EncoderFallbackBuffer klassen. |
Egenskaper
| Name | Description |
|---|---|
| Remaining |
När det åsidosätts i en härledd klass hämtar det antal tecken i det aktuella EncoderFallbackBuffer objektet som återstår att bearbeta. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Fallback(Char, Char, Int32) |
När den åsidosättas i en härledd klass förbereder du återställningsbufferten för att hantera det angivna surrogatparet. |
| Fallback(Char, Int32) |
När det åsidosättas i en härledd klass förbereder du återställningsbufferten för att hantera det angivna indatatecknet. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetNextChar() |
När du åsidosättas i en härledd klass hämtar nästa tecken i återställningsbufferten. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MovePrevious() |
När det åsidosätts i en härledd klass får nästa anrop till GetNextChar() metoden åtkomst till databuffertens teckenposition som är före den aktuella teckenpositionen. |
| Reset() |
Initierar all data- och tillståndsinformation som rör den här reservbufferten. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |