Decoder Klasse

Definition

Wandelt eine Abfolge codierter Bytes in eine Reihe von Zeichen um.

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
Vererbung
Decoder
Attribute

Beispiele

Im folgenden Beispiel wird die Verwendung eines Decoder Arrays zum Konvertieren von zwei unterschiedlichen Bytearrays in ein Zeichenarray veranschaulicht. Einer der Bytes des Zeichens erstreckt sich über die Arrays. Dies ähnelt dem, was ein StreamReader Objekt beim Lesen eines Datenstroms intern ausführt.

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

Hinweise

Rufen Sie die GetDecoder Methode einer Encoding Implementierung auf, um eine Instanz einer Implementierung der Decoder Klasse abzurufen.

Die GetCharCount Methode bestimmt, wie viele Zeichen dazu führen, dass eine Folge von Bytes decodiert wird, und die GetChars Methode führt die eigentliche Decodierung aus. Es gibt mehrere Versionen dieser beiden Methoden in der Decoder Klasse. Weitere Informationen finden Sie unter Encoding.GetChars. Ein Decoder Objekt verwaltet Zustandsinformationen zwischen aufeinander folgenden Aufrufen GetChars oder Convert Methoden, sodass bytesequenzen, die Blöcke umfassen, ordnungsgemäß decodiert werden können. Außerdem Decoder werden nachfolgende Bytes am Ende von Datenblöcken beibehalten und die nachfolgenden Bytes im nächsten Decodierungsvorgang verwendet. Daher sind sie nützlich für NetzwerkübertragungsGetEncoder- und Dateivorgänge, GetDecoder da diese Vorgänge häufig mit Datenblöcken statt mit einem vollständigen Datenstrom umgehen.

Note

Wenn die Anwendung mit einem Datenstrom fertig ist, sollte sichergestellt werden, dass die Statusinformationen geleert werden, indem Sie den flush Parameter true im entsprechenden Methodenaufruf festlegen. Wenn eine Ausnahme auftritt oder wenn die Anwendung Datenströme wechselt, sollte sie aufgerufen Reset werden, um den internen Zustand des Decoder Objekts zu löschen.

Hinweise für Ausführende

Wenn Ihre Anwendung von dieser Klasse erbt, muss sie alle Member überschreiben.

Konstruktoren

Name Beschreibung
Decoder()

Initialisiert eine neue Instanz der Decoder-Klasse.

Eigenschaften

Name Beschreibung
Fallback

Dient zum Abrufen oder Festlegen eines DecoderFallback Objekts für das aktuelle Decoder Objekt.

FallbackBuffer

Ruft das DecoderFallbackBuffer objekt ab, das dem aktuellen Decoder Objekt zugeordnet ist.

Methoden

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

Konvertiert ein Array codierter Bytes in UTF-16-codierte Zeichen und speichert das Ergebnis in einem Zeichenarray.

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

Konvertiert einen Puffer codierter Bytes in UTF-16-codierte Zeichen und speichert das Ergebnis in einem anderen Puffer.

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

Konvertiert eine Spanne codierter Bytes in UTF-16-codierte Zeichen und speichert das Ergebnis in einem anderen Spanpuffer.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetCharCount(Byte[], Int32, Int32, Boolean)

Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren einer Bytesequenz aus dem angegebenen Bytearray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Berechnung gelöscht werden soll.

GetCharCount(Byte[], Int32, Int32)

Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren einer Bytesequenz aus dem angegebenen Bytearray erzeugt werden.

GetCharCount(Byte*, Int32, Boolean)

Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren einer Bytesequenz erzeugt werden, beginnend mit dem angegebenen Bytezeiger. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Berechnung gelöscht werden soll.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren der Bytesequenz in der Spanne erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Berechnung gelöscht werden soll.

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

Wenn eine abgeleitete Klasse überschrieben wird, decodiert eine Bytesequenz aus dem angegebenen Bytearray und alle Bytes im internen Puffer in das angegebene Zeichenarray. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Konvertierung gelöscht werden soll.

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

Wenn eine abgeleitete Klasse überschrieben wird, decodiert eine Bytesequenz aus dem angegebenen Bytearray und alle Bytes im internen Puffer in das angegebene Zeichenarray.

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

Wenn sie in einer abgeleiteten Klasse überschrieben werden, decodieren Sie eine Abfolge von Bytes beginnend mit dem angegebenen Bytezeiger und allen Bytes im internen Puffer in eine Reihe von Zeichen, die ab dem angegebenen Zeichenzeiger gespeichert werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Konvertierung gelöscht werden soll.

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

Wenn sie in einer abgeleiteten Klasse überschrieben werden, decodieren Sie eine Sequenz von Spanbytes und alle Bytes im internen Puffer in eine Reihe von Zeichen, die ab dem angegebenen Zeichenzeiger gespeichert werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Konvertierung gelöscht werden soll.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Reset()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird der Decoder wieder auf den Anfangszustand zurück gesetzt.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen