EncoderFallbackBuffer 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.
Fornece um buffer que permite que um manipulador de fallback retorne uma cadeia de caracteres alternativa para um codificador quando ele não é capaz de codificar um caractere de entrada.
public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
- Herança
-
EncoderFallbackBuffer
- Derivado
Comentários
Uma codificação define um mapeamento entre um caractere Unicode e uma sequência codificada de bytes. Uma operação de codificação, que converte um caractere de entrada em uma sequência de bytes de saída, falhará se nenhum mapeamento for definido para um caractere específico.
O .NET Framework fornece um mecanismo de tratamento de falhas, chamado de fallback, se uma conversão não puder ser executada. Todos os manipuladores de fallback do codificador devem implementar o seguinte:
Um fallback do codificador, que é representado por uma classe derivada da EncoderFallback classe.
Um buffer de fallback do codificador, que é representado por um tipo derivado da EncoderFallbackBuffer classe que pode retornar uma cadeia de caracteres para a operação de conversão.
Os fallbacks podem usar três estratégias para lidar com falhas de conversão:
Mapeamento de melhor ajuste. O buffer de fallback do codificador pode retornar uma cadeia de caracteres que representa uma aproximação próxima ao caractere de entrada. O .NET Framework não fornece uma implementação pública de melhor ajusteEncoderFallbackBuffer.
Substituição. O buffer de fallback do codificador pode retornar uma cadeia de caracteres, como um ponto de interrogação ("?"), que indica que um caractere não pôde ser codificado. No .NET Framework, as classes e EncoderReplacementFallbackBuffer as EncoderReplacementFallback classes fornecem uma implementação de buffer de fallback de substituição pública. O construtor da EncoderReplacementFallback classe permite que você defina a cadeia de caracteres de substituição.
Exceção. A EncoderFallbackBuffer implementação gera uma exceção, que indica que um caractere não pode ser codificado e encerra a operação de codificação. Nesse caso, o manipulador de fallback deve fornecer uma implementação EncoderFallbackBuffer , embora não retorne uma cadeia de caracteres ao codificador. No .NET Framework, as classes e EncoderExceptionFallbackBuffer as EncoderExceptionFallback classes fornecem uma implementação de fallback de exceção pública que gera um EncoderFallbackException quando um caractere não pode ser codificado.
O buffer em uma EncoderFallbackBuffer implementação representa toda a cadeia de caracteres a ser retornada ao codificador em resposta a um fallback do codificador. Geralmente, as implementações também incluem informações de estado, como o índice do próximo caractere a ser retornado ao codificador e o número de caracteres restantes a serem retornados. Como EncoderFallbackBuffer é uma classe abstrata, ela requer classes derivadas para implementar os seguintes membros no mínimo:
O método sobrecarregado Fallback , que é chamado pelo codificador quando não pode codificar um caractere. O codificador passa duas informações para a implementação do buffer de fallback: o caractere ou par substituto que não pôde ser codificado e o índice do caractere na entrada. Em um manipulador de exceção de fallback do codificador, a exceção é gerada neste método. Caso contrário, o método retornará
true
se ele fornecer um fallback oufalse
se não o fizer.O GetNextChar método, que é chamado repetidamente pelo codificador se o Fallback método retornar
true
. Em chamadas sucessivas, o manipulador deve retornar cada caractere em seu buffer. Quando tiver retornado todos os caracteres, ele deverá retornar U+0000. Um manipulador de exceção sempre retorna U+0000.O MovePrevious método, que tenta mover o ponteiro para a posição anterior no buffer e indica se a movimentação foi bem-sucedida. Um manipulador de exceção sempre retorna
false
.A Remaining propriedade, que indica o número de caracteres restantes a serem retornados ao codificador. Um manipulador de fallback de exceção sempre retorna zero.
Construtores
EncoderFallbackBuffer() |
Inicializa uma nova instância da classe EncoderFallbackBuffer. |
Propriedades
Remaining |
Quando substituído em uma classe derivada, obtém o número máximo de caracteres no objeto EncoderFallbackBuffer atual que ainda não foi processado. |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Fallback(Char, Char, Int32) |
Quando substituído em uma classe derivada, prepara o buffer de fallback para manipular o par alternativo especificado. |
Fallback(Char, Int32) |
Quando substituído em uma classe derivada, prepara o buffer de fallback para manipular o caractere de entrada especificado. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetNextChar() |
Quando substituído em uma classe derivada, recupera o próximo caractere no buffer de fallback. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MovePrevious() |
Quando substituído em uma classe derivada, faz com que a próxima chamada para o método GetNextChar() acesse a posição do caractere do buffer de dados que é anterior à posição atual do caractere. |
Reset() |
Inicializa todas as informações de dados e de estado pertencentes a esse buffer de fallback. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |