Decoder Classe

Definizione

Converte una sequenza di byte codificati in un set di caratteri.

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
Ereditarietà
Decoder
Attributi

Esempio

Nell'esempio seguente viene illustrato l'uso di un oggetto Decoder per convertire due matrici di byte diverse in una matrice di caratteri. Uno dei byte del carattere si estende sulle matrici. Questa operazione è simile a quella eseguita internamente da un StreamReader oggetto durante la lettura di un flusso.

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

Commenti

Per ottenere un'istanza di un'implementazione della Decoder classe , chiamare il GetDecoder metodo di un'implementazione Encoding .

Il GetCharCount metodo determina il numero di caratteri che comportano la decodifica di una sequenza di byte e il GetChars metodo esegue la decodifica effettiva. Nella classe sono disponibili Decoder diverse versioni di entrambi questi metodi. Per altre informazioni, vedere Encoding.GetChars. Un Decoder oggetto mantiene le informazioni sullo stato tra chiamate successive a GetChars o Convert metodi in modo che possa decodificare correttamente le sequenze di byte che si estendono su blocchi. Decoder Mantiene inoltre i byte finali alla fine dei blocchi di dati e utilizza i byte finali nell'operazione di decodifica successiva. Pertanto, GetDecoder e GetEncoder sono utili per le operazioni di trasmissione e file di rete perché tali operazioni spesso gestiscono blocchi di dati anziché un flusso di dati completo.

Note

Quando l'applicazione viene eseguita con un flusso di dati, è necessario assicurarsi che le informazioni sullo stato vengano scaricate impostando il flush parametro su true nella chiamata al metodo appropriata. Se si verifica un'eccezione o se l'applicazione cambia flussi, deve chiamare Reset per cancellare lo stato interno dell'oggetto Decoder .

Note per gli implementatori

Quando l'applicazione eredita da questa classe, deve eseguire l'override di tutti i membri.

Costruttori

Nome Descrizione
Decoder()

Inizializza una nuova istanza della classe Decoder.

Proprietà

Nome Descrizione
Fallback

Ottiene o imposta un DecoderFallback oggetto per l'oggetto corrente Decoder .

FallbackBuffer

Ottiene l'oggetto DecoderFallbackBuffer associato all'oggetto corrente Decoder .

Metodi

Nome Descrizione
Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean)

Converte una matrice di byte codificati in caratteri con codifica UTF-16 e archivia il risultato in una matrice di caratteri.

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

Converte un buffer di byte codificati in caratteri con codifica UTF-16 e archivia il risultato in un altro buffer.

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

Converte un intervallo di byte codificati in caratteri con codifica UTF-16 e archivia il risultato in un altro buffer span.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetCharCount(Byte[], Int32, Int32, Boolean)

In caso di override in una classe derivata, calcola il numero di caratteri prodotti decodificando una sequenza di byte dalla matrice di byte specificata. Un parametro indica se cancellare lo stato interno del decodificatore dopo il calcolo.

GetCharCount(Byte[], Int32, Int32)

In caso di override in una classe derivata, calcola il numero di caratteri prodotti decodificando una sequenza di byte dalla matrice di byte specificata.

GetCharCount(Byte*, Int32, Boolean)

Quando sottoposto a override in una classe derivata, calcola il numero di caratteri prodotti dalla decodifica di una sequenza di byte a partire dal puntatore di byte specificato. Un parametro indica se cancellare lo stato interno del decodificatore dopo il calcolo.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Quando sottoposto a override in una classe derivata, calcola il numero di caratteri prodotti decodificando la sequenza di byte nell'intervallo. Un parametro indica se cancellare lo stato interno del decodificatore dopo il calcolo.

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

In caso di override in una classe derivata, decodifica una sequenza di byte dalla matrice di byte specificata ed eventuali byte nel buffer interno nella matrice di caratteri specificata. Un parametro indica se cancellare lo stato interno del decodificatore dopo la conversione.

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

In caso di override in una classe derivata, decodifica una sequenza di byte dalla matrice di byte specificata ed eventuali byte nel buffer interno nella matrice di caratteri specificata.

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

Quando sottoposto a override in una classe derivata, decodifica una sequenza di byte a partire dal puntatore di byte specificato ed eventuali byte nel buffer interno in un set di caratteri archiviati a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del decodificatore dopo la conversione.

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

In caso di override in una classe derivata, decodifica una sequenza di byte di intervallo ed eventuali byte nel buffer interno in un set di caratteri archiviati a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del decodificatore dopo la conversione.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Reset()

Quando sottoposto a override in una classe derivata, imposta di nuovo il decodificatore sullo stato iniziale.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche