Decoder 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.
Konverterar en sekvens med kodade byte till en uppsättning tecken.
public ref class Decoder abstract
public abstract class Decoder
[System.Serializable]
public abstract class Decoder
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Decoder
type Decoder = class
[<System.Serializable>]
type Decoder = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Decoder = class
Public MustInherit Class Decoder
- Arv
-
Decoder
- Attribut
Exempel
I följande exempel visas användningen av en Decoder för att konvertera två olika bytematriser till en teckenmatris. Ett av tecknets byte sträcker sig över matriserna. Detta liknar vad ett StreamReader objekt gör internt när du läser en dataström.
using System;
using System.Text;
public class dec
{
public static void Main()
{
// These bytes in UTF-8 correspond to 3 different Unicode
// characters: space (U+0020), # (U+0023), and the biohazard
// symbol (U+2623). Note the biohazard symbol requires 3 bytes
// in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
// multiple calls to GetChars, handling the case when one char
// is in multiple byte arrays.
byte[] bytes1 = { 0x20, 0x23, 0xe2 };
byte[] bytes2 = { 0x98, 0xa3 };
char[] chars = new char[3];
Decoder d = Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(bytes1, 0, bytes1.Length, chars, 0);
// The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen);
foreach(char c in chars)
Console.Write("U+{0:X4} ", (ushort)c);
}
}
Imports System.Text
Public Class dec
Public Shared Sub Main()
' These bytes in UTF-8 correspond to 3 different Unicode
' characters: space (U+0020), # (U+0023), and the biohazard
' symbol (U+2623). Note the biohazard symbol requires 3 bytes
' in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
' multiple calls to GetChars, handling the case when one char
' is in multiple byte arrays.
Dim bytes1 As Byte() = {&H20, &H23, &HE2}
Dim bytes2 As Byte() = {&H98, &HA3}
Dim chars(3) As Char
Dim d As Decoder = Encoding.UTF8.GetDecoder()
Dim charLen As Integer = d.GetChars(bytes1, 0, bytes1.Length, chars, 0)
' The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen)
Dim c As Char
For Each c In chars
Console.Write("U+{0:X4} ", Convert.ToUInt16(c) )
Next c
End Sub
End Class
Kommentarer
Om du vill hämta en instans av en implementering av Decoder klassen anropar du metoden för GetDecoder en Encoding implementering.
Metoden GetCharCount avgör hur många tecken som resulterar i avkodning av en sekvens med byte och GetChars metoden utför den faktiska avkodningen. Det finns flera versioner av båda dessa metoder som är tillgängliga i Decoder klassen. Mer information finns i Encoding.GetChars. Ett Decoder objekt upprätthåller tillståndsinformation mellan efterföljande anrop till eller Convert metoder så att GetChars det korrekt kan avkoda bytesekvenser som sträcker sig över block. Bevarar Decoder även avslutande byte i slutet av datablocken och använder efterföljande byte i nästa avkodningsåtgärd.
GetDecoder Därför och GetEncoder är användbara för nätverksöverföring och filåtgärder eftersom dessa åtgärder ofta hanterar datablock i stället för en fullständig dataström.
Note
När programmet är klart med en dataström bör det se till att tillståndsinformationen rensas genom att ange parametern flush till true i lämpligt metodanrop. Om ett undantag inträffar eller om programmet växlar strömmar bör det anropa Reset för att rensa objektets Decoder interna tillstånd.
Anteckningar till implementerare
När ditt program ärver från den här klassen måste det åsidosätta alla medlemmar.
Konstruktorer
| Name | Description |
|---|---|
| Decoder() |
Initierar en ny instans av Decoder klassen. |
Egenskaper
| Name | Description |
|---|---|
| Fallback |
Hämtar eller anger ett DecoderFallback objekt för det aktuella Decoder objektet. |
| FallbackBuffer |
Hämtar objektet som DecoderFallbackBuffer är associerat med det aktuella Decoder objektet. |
Metoder
| Name | Description |
|---|---|
| Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean) |
Konverterar en matris med kodade byte till UTF-16-kodade tecken och lagrar resultatet i en teckenmatris. |
| Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean) |
Konverterar en buffert med kodade byte till UTF-16-kodade tecken och lagrar resultatet i en annan buffert. |
| Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean) |
Konverterar ett intervall med kodade byte till UTF-16-kodade tecken och lagrar resultatet i en annan intervallbuffert. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetCharCount(Byte[], Int32, Int32, Boolean) |
När det åsidosättas i en härledd klass beräknas antalet tecken som genereras genom avkodning av en sekvens med byte från den angivna bytematrisen. En parameter anger om avkodarens interna tillstånd ska rensas efter beräkningen. |
| GetCharCount(Byte[], Int32, Int32) |
När det åsidosättas i en härledd klass beräknas antalet tecken som genereras genom avkodning av en sekvens med byte från den angivna bytematrisen. |
| GetCharCount(Byte*, Int32, Boolean) |
När det åsidosättas i en härledd klass beräknas antalet tecken som genereras genom avkodning av en sekvens med byte som börjar vid den angivna bytepekaren. En parameter anger om avkodarens interna tillstånd ska rensas efter beräkningen. |
| GetCharCount(ReadOnlySpan<Byte>, Boolean) |
När det åsidosättas i en härledd klass beräknas antalet tecken som genereras genom avkodning av sekvensen med byte i intervallet. En parameter anger om avkodarens interna tillstånd ska rensas efter beräkningen. |
| GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean) |
När det åsidosättas i en härledd klass avkodar en sekvens med byte från den angivna bytematrisen och eventuella byte i den interna bufferten till den angivna teckenmatrisen. En parameter anger om avkodarens interna tillstånd ska rensas efter konverteringen. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
När det åsidosättas i en härledd klass avkodar en sekvens med byte från den angivna bytematrisen och eventuella byte i den interna bufferten till den angivna teckenmatrisen. |
| GetChars(Byte*, Int32, Char*, Int32, Boolean) |
När de åsidosätts i en härledd klass avkodar en sekvens med byte som börjar vid den angivna bytepekaren och eventuella byte i den interna bufferten till en uppsättning tecken som lagras från och med den angivna teckenpekaren. En parameter anger om avkodarens interna tillstånd ska rensas efter konverteringen. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean) |
När den åsidosätts i en härledd klass avkodas en sekvens med intervallbyte och eventuella byte i den interna bufferten till en uppsättning tecken som lagras från och med den angivna teckenpekaren. En parameter anger om avkodarens interna tillstånd ska rensas efter konverteringen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Reset() |
När de åsidosättas i en härledd klass anger du tillbaka avkodaren till det ursprungliga tillståndet. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |