Decoder Klas

Definitie

Converteert een reeks gecodeerde bytes naar een reeks tekens.

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
Overname
Decoder
Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u het gebruik van een Decoder om twee verschillende bytematrices te converteren naar een tekenmatrix. Een van de bytes van het teken omvat de matrices. Dit is vergelijkbaar met wat een StreamReader object intern doet bij het lezen van een stream.

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

Opmerkingen

Als u een exemplaar van een implementatie van de Decoder klasse wilt verkrijgen, roept u de GetDecoder methode van een Encoding implementatie aan.

De GetCharCount methode bepaalt hoeveel tekens resulteren in het decoderen van een reeks bytes en de GetChars methode voert de daadwerkelijke decodering uit. Er zijn verschillende versies van beide methoden beschikbaar in de Decoder klasse. Zie Encoding.GetChars voor meer informatie. Een Decoder object onderhoudt statusinformatie tussen opeenvolgende aanroepen of GetCharsConvert methoden, zodat bytereeksen die blokken omvatten, correct kunnen decoderen. Het Decoder behoudt ook volgbytes aan het einde van gegevensblokken en gebruikt de volgbytes in de volgende decoderingsbewerking. GetDecoder Daarom, en GetEncoder zijn nuttig voor netwerkoverdracht en bestandsbewerkingen omdat deze bewerkingen vaak omgaan met blokken gegevens in plaats van een volledige gegevensstroom.

Note

Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet u ervoor zorgen dat de statusinformatie wordt leeggemaakt door de flush parameter true in te stellen in de juiste methode-aanroep. Als er een uitzondering optreedt of als de toepassing overschakelt naar stromen, moet Reset deze de interne status van het Decoder object wissen.

Notities voor uitvoerders

Wanneer uw toepassing wordt overgenomen van deze klasse, moet deze alle leden overschrijven.

Constructors

Name Description
Decoder()

Initialiseert een nieuw exemplaar van de Decoder klasse.

Eigenschappen

Name Description
Fallback

Hiermee wordt een DecoderFallback object opgehaald of ingesteld voor het huidige Decoder object.

FallbackBuffer

Hiermee haalt u het DecoderFallbackBuffer object op dat is gekoppeld aan het huidige Decoder object.

Methoden

Name Description
Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean)

Converteert een matrix met gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een tekenmatrix.

Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean)

Converteert een buffer met gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een andere buffer.

Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean)

Converteert een reeks gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een andere spanbuffer.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetCharCount(Byte[], Int32, Int32, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door het decoderen van een reeks bytes van de opgegeven bytematrix. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist.

GetCharCount(Byte[], Int32, Int32)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door het decoderen van een reeks bytes van de opgegeven bytematrix.

GetCharCount(Byte*, Int32, Boolean)

Wanneer deze worden overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door een reeks bytes te decoderen die beginnen bij de opgegeven byteaanwijzer. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door de reeks bytes in de periode te decoderen. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist.

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

GetChars(Byte[], Int32, Int32, Char[], Int32)

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix.

GetChars(Byte*, Int32, Char*, Int32, Boolean)

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes die beginnen bij de opgegeven byteaanwijzer en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, ontsleutelt u een reeks spanbytes en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Reset()

Wanneer de decoder wordt overschreven in een afgeleide klasse, stelt u de decoder weer in de beginstatus.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook