Decoder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte uma sequência de bytes codificados em um conjunto de caracteres.
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
- Herança
-
Decoder
- Atributos
Exemplos
O exemplo a seguir demonstra o uso de uma Decoder para converter duas matrizes de bytes diferentes em uma matriz de caracteres. Um dos bytes do caractere abrange as matrizes. Isso é semelhante ao que um StreamReader objeto faz internamente ao ler um fluxo.
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
Comentários
Para obter uma instância de uma implementação da Decoder classe, chame o GetDecoder método de uma implementação Encoding .
O GetCharCount método determina quantos caracteres resultam na decodificação de uma sequência de bytes e o GetChars método executa a decodificação real. Há várias versões de ambos os métodos disponíveis na Decoder classe. Para obter mais informações, consulte Encoding.GetChars. Um Decoder objeto mantém informações de estado entre chamadas ou Convert métodos sucessivos para GetChars que possa decodificar corretamente sequências de bytes que abrangem blocos. O Decoder também preserva bytes à direita no final dos blocos de dados e usa os bytes à direita na próxima operação de decodificação. Portanto, GetDecoder e GetEncoder são úteis para operações de transmissão de rede e arquivos, pois essas operações geralmente lidam com blocos de dados em vez de um fluxo de dados completo.
Note
Quando o aplicativo for concluído com um fluxo de dados, ele deverá garantir que as informações de estado sejam liberadas definindo o flush parâmetro true na chamada de método apropriada. Se ocorrer uma exceção ou se o aplicativo mudar de fluxo, ele deverá chamar Reset para limpar o estado interno do Decoder objeto.
Notas aos Implementadores
Quando seu aplicativo herda dessa classe, ele deve substituir todos os membros.
Construtores
| Nome | Description |
|---|---|
| Decoder() |
Inicializa uma nova instância da classe Decoder. |
Propriedades
| Nome | Description |
|---|---|
| Fallback |
Obtém ou define um DecoderFallback objeto para o objeto atual Decoder . |
| FallbackBuffer |
Obtém o DecoderFallbackBuffer objeto associado ao objeto atual Decoder . |
Métodos
| Nome | Description |
|---|---|
| Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean) |
Converte uma matriz de bytes codificados em caracteres codificados em UTF-16 e armazena o resultado em uma matriz de caracteres. |
| Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean) |
Converte um buffer de bytes codificados em caracteres codificados em UTF-16 e armazena o resultado em outro buffer. |
| Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean) |
Converte um intervalo de bytes codificados em caracteres codificados em UTF-16 e armazena o resultado em outro buffer de intervalo. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetCharCount(Byte[], Int32, Int32, Boolean) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes da matriz de bytes especificada. Um parâmetro indica se o estado interno do decodificador deve ser limpo após o cálculo. |
| GetCharCount(Byte[], Int32, Int32) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes da matriz de bytes especificada. |
| GetCharCount(Byte*, Int32, Boolean) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes começando no ponteiro de bytes especificado. Um parâmetro indica se o estado interno do decodificador deve ser limpo após o cálculo. |
| GetCharCount(ReadOnlySpan<Byte>, Boolean) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação da sequência de bytes no intervalo. Um parâmetro indica se o estado interno do decodificador deve ser limpo após o cálculo. |
| GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean) |
Quando substituído em uma classe derivada, decodifica uma sequência de bytes da matriz de bytes especificada e quaisquer bytes no buffer interno na matriz de caracteres especificada. Um parâmetro indica se o estado interno do decodificador deve ser limpo após a conversão. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Quando substituído em uma classe derivada, decodifica uma sequência de bytes da matriz de bytes especificada e quaisquer bytes no buffer interno na matriz de caracteres especificada. |
| GetChars(Byte*, Int32, Char*, Int32, Boolean) |
Quando substituído em uma classe derivada, decodifica uma sequência de bytes começando no ponteiro de bytes especificado e quaisquer bytes no buffer interno em um conjunto de caracteres armazenados a partir do ponteiro de caractere especificado. Um parâmetro indica se o estado interno do decodificador deve ser limpo após a conversão. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean) |
Quando substituído em uma classe derivada, decodifica uma sequência de bytes de intervalo e quaisquer bytes no buffer interno em um conjunto de caracteres armazenados a partir do ponteiro de caractere especificado. Um parâmetro indica se o estado interno do decodificador deve ser limpo após a conversão. |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Reset() |
Quando substituído em uma classe derivada, define o decodificador de volta para seu estado inicial. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |