Decoder Třída

Definice

Převede posloupnost zakódovaných bajtů na sadu znaků.

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
Dědičnost
Decoder
Atributy

Příklady

Následující příklad ukazuje použití k převodu Decoder dvou různých bajtových polí na znakové pole. Jeden z bajtů znaku zahrnuje pole. To se podobá tomu, co StreamReader objekt dělá interně při čtení datového proudu.

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

Poznámky

Chcete-li získat instanci implementace Decoder třídy, zavolejte GetDecoder metodu Encoding implementace.

Metoda GetCharCount určuje, kolik znaků má za následek dekódování posloupnosti bajtů a GetChars metoda provádí skutečné dekódování. Ve třídě je k dispozici Decoder několik verzí obou těchto metod. Další informace najdete na webu Encoding.GetChars. Objekt Decoder udržuje informace o stavu mezi následnými voláními GetChars nebo Convert metodami, aby mohl správně dekódovat bajtové sekvence, které pokrývají bloky. Zároveň Decoder zachovává koncové bajty na konci datových bloků a používá koncové bajty v další dekódovací operaci. Proto jsou GetEncoder užitečné pro síťové přenosy a operace se soubory, GetDecoder protože tyto operace často zpracovávají bloky dat místo kompletního datového proudu.

Note

Po dokončení aplikace s datovým proudem by se mělo ujistit, že informace o stavu jsou vyprázdněné nastavením flush parametru do true příslušného volání metody. Pokud dojde k výjimce nebo pokud aplikace přepne datové proudy, měla by volat Reset vymazání vnitřního stavu objektu Decoder .

Poznámky pro implementátory

Když vaše aplikace dědí z této třídy, musí přepsat všechny členy.

Konstruktory

Name Description
Decoder()

Inicializuje novou instanci Decoder třídy.

Vlastnosti

Name Description
Fallback

Získá nebo nastaví DecoderFallback objekt pro aktuální Decoder objekt.

FallbackBuffer

DecoderFallbackBuffer Získá objekt přidružený k aktuálnímu Decoder objektu.

Metody

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

Převede pole kódovaných bajtů na kódované znaky kódování UTF-16 a uloží výsledek do pole znaků.

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

Převede vyrovnávací paměť zakódovaných bajtů na kódované znaky UTF-16 a uloží výsledek do jiné vyrovnávací paměti.

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

Převede rozsah kódovaných bajtů na kódované znaky kódování UTF-16 a uloží výsledek do jiné vyrovnávací paměti rozsahu.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetCharCount(Byte[], Int32, Int32, Boolean)

Při přepsání v odvozené třídě vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného bajtového pole. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.

GetCharCount(Byte[], Int32, Int32)

Při přepsání v odvozené třídě vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného bajtového pole.

GetCharCount(Byte*, Int32, Boolean)

Při přepsání v odvozené třídě vypočítá počet znaků vytvořený dekódováním posloupnosti bajtů počínaje zadaným ukazatelem bajtu. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Při přepsání v odvozené třídě vypočítá počet znaků vytvořený dekódováním posloupnosti bajtů v rozsahu. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.

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

Při přepsání v odvozené třídě dekóduje posloupnost bajtů ze zadané bajtové pole a všechny bajty v interní vyrovnávací paměti do zadané znakové matice. Parametr určuje, zda má být po převodu vymazán vnitřní stav dekodéru.

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

Při přepsání v odvozené třídě dekóduje posloupnost bajtů ze zadané bajtové pole a všechny bajty v interní vyrovnávací paměti do zadané znakové matice.

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

Při přepsání v odvozené třídě dekóduje posloupnost bajtů počínaje zadaným bajtovým ukazatelem a všemi bajty v interní vyrovnávací paměti do sady znaků, které jsou uloženy od zadaného ukazatele znaků. Parametr určuje, zda má být po převodu vymazán vnitřní stav dekodéru.

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

Při přepsání v odvozené třídě dekóduje posloupnost span bajtů a všech bajtů v interní vyrovnávací paměti do sady znaků, které jsou uloženy počínaje zadaným ukazatelem znaku. Parametr určuje, zda má být po převodu vymazán vnitřní stav dekodéru.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Reset()

Při přepsání v odvozené třídě nastaví dekodér zpět do původního stavu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také