Partager via


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

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 si l'état interne de l'encodeur doit être effacé 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 au pointeur de caractère spécifié. Un paramètre indique si l'état interne de l'encodeur doit être effacé 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 du tableau de caractères spécifié. Un paramètre indique si l'état interne de l'encodeur doit être effacé 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 est appelé avec flush la valeur définie falsesur , l’encodeur stocke les caractères de fin à 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 sur un bloc de données immédiatement avant d’appeler GetBytes sur le même bloc, afin que tous les caractères de fin du bloc précédent soient inclus dans le calcul.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Source:
Encoder.cs
Source:
Encoder.cs
Source:
Encoder.cs

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 si l'état interne de l'encodeur doit être effacé 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>

Une é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 produits en encodant les caractères spécifiés et ceux de la mémoire tampon interne.

S’applique à

GetByteCount(Char*, Int32, Boolean)

Source:
Encoder.cs
Source:
Encoder.cs
Source:
Encoder.cs

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 au pointeur de caractère spécifié. Un paramètre indique si l'état interne de l'encodeur doit être effacé après le calcul.

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)]
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)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<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

Paramètres

chars
Char*

Pointeur 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 produits en encodant les caractères spécifiés et ceux de la mémoire tampon interne.

Attributs

Exceptions

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

count est inférieur à zéro.

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

-et-

Fallback a la valeur EncoderExceptionFallback.

Voir aussi

S’applique à

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

Source:
Encoder.cs
Source:
Encoder.cs
Source:
Encoder.cs

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 du tableau de caractères spécifié. Un paramètre indique si l'état interne de l'encodeur doit être effacé 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 produits en encodant les caractères spécifiés et ceux de 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 dans chars.

Un secours s’est produit (pour plus d’informations, consultez Codage 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 élément Unicode Encoder.

using namespace System;
using namespace System::Text;
int main()
{
   
   // Unicode characters.
   
   // Pi
   // Sigma
   array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
   Encoder^ uniEncoder = Encoding::Unicode->GetEncoder();
   int byteCount = uniEncoder->GetByteCount( chars, 0, chars->Length, true );
   Console::WriteLine( "{0} bytes needed to encode characters.", byteCount );
}

/* This code example produces the following output. 

8 bytes needed to encode characters.

*/
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 à