Partager via


EncoderFallbackBuffer Classe

Définition

Fournit une mémoire tampon qui permet à un gestionnaire de secours de retourner une autre chaîne à un encodeur lorsqu'il ne peut pas encoder un caractère d'entrée.

public ref class EncoderFallbackBuffer abstract
public abstract class EncoderFallbackBuffer
type EncoderFallbackBuffer = class
Public MustInherit Class EncoderFallbackBuffer
Héritage
EncoderFallbackBuffer
Dérivé

Remarques

Un encodage définit un mappage entre un caractère Unicode et une séquence d’octets encodée. Une opération d’encodage, qui convertit un caractère d’entrée en séquence d’octets de sortie, échoue si aucun mappage n’est défini pour un caractère particulier.

Le .NET Framework fournit un mécanisme de gestion des défaillances, appelé secours, si une conversion ne peut pas être effectuée. Tous les gestionnaires de secours d’encodeur doivent implémenter les éléments suivants :

  • Un encodeur de secours, qui est représenté par une classe dérivée de la EncoderFallback classe .

  • Mémoire tampon de secours de l’encodeur, représentée par un type dérivé de la EncoderFallbackBuffer classe qui peut retourner une chaîne à l’opération de conversion.

Les secours peuvent utiliser trois stratégies pour gérer les échecs de conversion :

  • Mappage le mieux adapté. La mémoire tampon de secours de l’encodeur peut retourner une chaîne qui représente une approximation proche du caractère d’entrée. Le .NET Framework ne fournit pas d’implémentation publique la mieux adaptée EncoderFallbackBuffer .

  • Remplacement. La mémoire tampon de secours de l’encodeur peut retourner une chaîne, telle qu’un point d’interrogation (« ? »), qui indique qu’un caractère n’a pas pu être encodé. Dans le .NET Framework, les EncoderReplacementFallback classes et EncoderReplacementFallbackBuffer fournissent une implémentation de mémoire tampon de remplacement publique. Le constructeur de la EncoderReplacementFallback classe vous permet de définir la chaîne de remplacement.

  • Exception. L’implémentation EncoderFallbackBuffer lève une exception, qui indique qu’un caractère ne peut pas être encodé, et met fin à l’opération d’encodage. Dans ce cas, le gestionnaire de secours doit fournir une EncoderFallbackBuffer implémentation, bien qu’il ne retourne pas de chaîne à l’encodeur. Dans le .NET Framework, les EncoderExceptionFallback classes et EncoderExceptionFallbackBuffer fournissent une implémentation de secours d’exception publique qui lève un EncoderFallbackException quand un caractère ne peut pas être encodé.

La mémoire tampon dans une EncoderFallbackBuffer implémentation représente la chaîne entière à retourner à l’encodeur en réponse à un encodeur de secours. En règle générale, les implémentations incluent également des informations d’état, telles que l’index du caractère suivant à retourner à l’encodeur et le nombre de caractères restants à retourner. Étant donné que EncoderFallbackBuffer est une classe abstraite, les classes dérivées doivent implémenter au minimum les membres suivants :

  • Méthode surchargée Fallback , appelée par l’encodeur lorsqu’il ne peut pas encoder un caractère. L’encodeur transmet deux éléments d’informations à l’implémentation de la mémoire tampon de secours : le caractère ou la paire de substitution qui n’a pas pu être encodé et l’index du caractère dans l’entrée. Dans un gestionnaire d’exceptions de secours d’encodeur, l’exception est levée dans cette méthode. Sinon, la méthode retourne true si elle fournit un secours, ou false si ce n’est pas le cas.

  • La GetNextChar méthode , qui est appelée à plusieurs reprises par l’encodeur si la Fallback méthode retourne true. Dans les appels successifs, le gestionnaire doit retourner chaque caractère dans sa mémoire tampon. Lorsqu’il a retourné tous les caractères, il doit renvoyer U+0000. Un gestionnaire d’exceptions retourne toujours U+0000.

  • La MovePrevious méthode, qui tente de déplacer le pointeur vers la position précédente dans la mémoire tampon et indique si le déplacement a réussi. Un gestionnaire d’exceptions retourne falsetoujours .

  • Propriété Remaining , qui indique le nombre de caractères restants à retourner à l’encodeur. Un gestionnaire de secours d’exception retourne toujours zéro.

Constructeurs

EncoderFallbackBuffer()

Initialise une nouvelle instance de la classe EncoderFallbackBuffer.

Propriétés

Remaining

En cas de substitution dans une classe dérivée, obtient le nombre de caractères de l'objet EncoderFallbackBuffer en cours qu'il reste à traiter.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Fallback(Char, Char, Int32)

En cas de substitution dans une classe dérivée, prépare la mémoire tampon de secours à la gestion de la paire de substitution spécifiée.

Fallback(Char, Int32)

En cas de substitution dans une classe dérivée, prépare la mémoire tampon de secours à la gestion du caractère en entrée spécifié.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetNextChar()

En cas de substitution dans une classe dérivée, récupère le caractère suivant de la mémoire tampon de secours.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MovePrevious()

En cas de substitution dans une classe dérivée, provoque l'appel suivant à la méthode GetNextChar() pour accéder à la position de caractère de la mémoire tampon précédant la position de caractère en cours.

Reset()

Initialise toutes les données et informations d'état relatives à cette mémoire tampon de secours.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi