Encoder.GetByteCount Méthode

Définition

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères.

Surcharges

Nom Description
GetByteCount(ReadOnlySpan<Char>, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères dans l’étendue « chars ». Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

GetByteCount(Char*, Int32, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères commençant par le pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

GetByteCount(Char[], Int32, Int32, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères à partir du tableau de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

Remarques

Cette méthode n’affecte pas l’état de l’encodeur.

Pour calculer la taille exacte du tableau qui GetBytes nécessite de stocker les octets résultants, l’application doit utiliser GetByteCount.

Si GetBytes elle est appelée avec flush la valeur définie false, l’encodeur stocke les caractères de fin du bloc de données à la fin du bloc de données dans une mémoire tampon interne et les utilise dans l’opération d’encodage suivante. L’application doit appeler GetByteCount un bloc de données immédiatement avant d’appeler GetBytes le même bloc afin que les caractères de fin du bloc précédent soient inclus dans le calcul.

GetByteCount(ReadOnlySpan<Char>, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères dans l’étendue « chars ». Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

public:
 virtual int GetByteCount(ReadOnlySpan<char> chars, bool flush);
public virtual int GetByteCount(ReadOnlySpan<char> chars, bool flush);
abstract member GetByteCount : ReadOnlySpan<char> * bool -> int
override this.GetByteCount : ReadOnlySpan<char> * bool -> int
Public Overridable Function GetByteCount (chars As ReadOnlySpan(Of Char), flush As Boolean) As Integer

Paramètres

chars
ReadOnlySpan<Char>

Étendue de caractères à encoder.

flush
Boolean

true pour simuler l’effacement de l’état interne de l’encodeur après le calcul ; sinon, false.

Retours

Nombre d’octets générés par l’encodage des caractères spécifiés et de tous les caractères dans la mémoire tampon interne.

S’applique à

GetByteCount(Char*, Int32, Boolean)

Important

Cette API n’est pas conforme CLS.

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères commençant par le pointeur de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

public:
 virtual int GetByteCount(char* chars, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetByteCount(char* chars, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetByteCount(char* chars, int count, bool flush);
[System.CLSCompliant(false)]
public virtual int GetByteCount(char* chars, int count, bool flush);
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int

Paramètres

chars
Char*

Pointeur vers le premier caractère à encoder.

count
Int32

Nombre de caractères à encoder.

flush
Boolean

true pour simuler l’effacement de l’état interne de l’encodeur après le calcul ; sinon, false.

Retours

Nombre d’octets générés par l’encodage des caractères spécifiés et de tous les caractères dans la mémoire tampon interne.

Attributs

Exceptions

chars est null (Nothing dans Visual Basic .NET).

count est inférieur à zéro.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

Fallback a la valeur EncoderExceptionFallback.

Voir aussi

S’applique à

GetByteCount(Char[], Int32, Int32, Boolean)

En cas de substitution dans une classe dérivée, calcule le nombre d’octets produits par l’encodage d’un jeu de caractères à partir du tableau de caractères spécifié. Un paramètre indique s’il faut effacer l’état interne de l’encodeur après le calcul.

public:
 abstract int GetByteCount(cli::array <char> ^ chars, int index, int count, bool flush);
public abstract int GetByteCount(char[] chars, int index, int count, bool flush);
abstract member GetByteCount : char[] * int * int * bool -> int
Public MustOverride Function GetByteCount (chars As Char(), index As Integer, count As Integer, flush As Boolean) As Integer

Paramètres

chars
Char[]

Tableau de caractères contenant le jeu de caractères à encoder.

index
Int32

Index du premier caractère à encoder.

count
Int32

Nombre de caractères à encoder.

flush
Boolean

true pour simuler l’effacement de l’état interne de l’encodeur après le calcul ; sinon, false.

Retours

Nombre d’octets générés par l’encodage des caractères spécifiés et de tous les caractères dans la mémoire tampon interne.

Exceptions

chars a la valeur null.

index ou count est inférieur à zéro.

-ou-

index et count ne désignent pas une plage valide en chars.

Un secours s’est produit (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

Fallback a la valeur EncoderExceptionFallback.

Exemples

L’exemple de code suivant montre comment utiliser la GetByteCount méthode pour retourner le nombre d’octets requis pour encoder un tableau de caractères à l’aide d’un Unicode Encoder.

using System;
using System.Text;

class EncoderExample {
    public static void Main() {
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };

        Encoder uniEncoder = Encoding.Unicode.GetEncoder();
        int byteCount = uniEncoder.GetByteCount(chars, 0, chars.Length, true);
        Console.WriteLine(
            "{0} bytes needed to encode characters.", byteCount
        );
    }
}

/* This example produces the following output.

8 bytes needed to encode characters.

*/
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class EncoderExample
    
    Public Shared Sub Main()
        ' Unicode characters.
        ' ChrW(35)  = #
        ' ChrW(37)  = %
        ' ChrW(928) = Pi
        ' ChrW(931) = Sigma
        Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
        
        Dim uniEncoder As Encoder = Encoding.Unicode.GetEncoder()
        Dim byteCount As Integer = _
            uniEncoder.GetByteCount(chars, 0, chars.Length, True)
        Console.WriteLine("{0} bytes needed to encode characters.", byteCount)
    End Sub
End Class
'
'This example produces the following output.
'
'8 bytes needed to encode characters.
'

Voir aussi

S’applique à