Encoder.GetByteCount Encoder.GetByteCount Encoder.GetByteCount Encoder.GetByteCount Method

Definición

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters.

Sobrecargas

GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean)
GetByteCount(Char*, Int32, Boolean) GetByteCount(Char*, Int32, Boolean) GetByteCount(Char*, Int32, Boolean)

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres a partir del puntero de caracteres especificado.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer. Un parámetro indica si se debe borrar el estado interno del codificador después del cálculo.A parameter indicates whether to clear the internal state of the encoder after the calculation.

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

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres de la matriz de caracteres especificada.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. Un parámetro indica si se debe borrar el estado interno del codificador después del cálculo.A parameter indicates whether to clear the internal state of the encoder after the calculation.

GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean) GetByteCount(ReadOnlySpan<Char>, Boolean)

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

Parámetros

Devoluciones

GetByteCount(Char*, Int32, Boolean) GetByteCount(Char*, Int32, Boolean) GetByteCount(Char*, Int32, Boolean)

Importante

Esta API no es conforme a CLS.

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres a partir del puntero de caracteres especificado.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer. Un parámetro indica si se debe borrar el estado interno del codificador después del cálculo.A parameter indicates whether to clear the internal state of the encoder after the calculation.

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

Parámetros

chars
Char*

Puntero al primer carácter que se va a codificar.A pointer to the first character to encode.

count
Int32 Int32 Int32 Int32

Número de caracteres que se van a codificar.The number of characters to encode.

flush
Boolean Boolean Boolean Boolean

true para simular el borrado del estado interno del codificador después del cálculo; de lo contrario, false.true to simulate clearing the internal state of the encoder after the calculation; otherwise, false.

Devoluciones

Número de bytes generado al codificar los caracteres especificados y cualquier carácter del búfer interno.The number of bytes produced by encoding the specified characters and any characters in the internal buffer.

Excepciones

chars es null (Nothing en Visual Basic .NET).chars is null (Nothing in Visual Basic .NET).

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa)A fallback occurred (see Character Encoding in the .NET Framework for fuller explanation) - y --and- El valor de Fallback está establecido en EncoderExceptionFallback.Fallback is set to EncoderExceptionFallback.

Comentarios

Este método no afecta al estado del codificador.This method does not affect the state of the encoder.

Para calcular el tamaño exacto de la GetBytes matriz que requiere para almacenar los bytes resultantes, la GetByteCountaplicación debe usar.To calculate the exact array size that GetBytes requires to store the resulting bytes, the application should use GetByteCount.

Si GetBytes se llama a flush con establecido falseen, el codificador almacena los caracteres finales al final del bloque de datos en un búfer interno y los usa en la siguiente operación de codificación.If GetBytes is called with flush set to false, the encoder stores trailing characters at the end of the data block in an internal buffer and uses them in the next encoding operation. La aplicación debe llamar GetByteCount a en un bloque de datos inmediatamente antes GetBytes de llamar a en el mismo bloque, de modo que todos los caracteres finales del bloque anterior se incluyan en el cálculo.The application should call GetByteCount on a block of data immediately before calling GetBytes on the same block, so that any trailing characters from the previous block are included in the calculation.

Seguridad

SecurityCriticalAttribute
requiere plena confianza para el llamador inmediato.Requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

Consulte también:

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

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar un juego de caracteres de la matriz de caracteres especificada.When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. Un parámetro indica si se debe borrar el estado interno del codificador después del cálculo.A parameter indicates whether to clear the internal state of the encoder after the calculation.

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

Parámetros

chars
Char[]

Matriz de caracteres que contiene el juego de caracteres que se va a codificar.The character array containing the set of characters to encode.

index
Int32 Int32 Int32 Int32

Índice del primer carácter que se va a codificar.The index of the first character to encode.

count
Int32 Int32 Int32 Int32

Número de caracteres que se van a codificar.The number of characters to encode.

flush
Boolean Boolean Boolean Boolean

true para simular el borrado del estado interno del codificador después del cálculo; de lo contrario, false.true to simulate clearing the internal state of the encoder after the calculation; otherwise, false.

Devoluciones

Número de bytes generado al codificar los caracteres especificados y cualquier carácter del búfer interno.The number of bytes produced by encoding the specified characters and any characters in the internal buffer.

Excepciones

index o count es menor que cero.index or count is less than zero.

o bien-or- index y count no denotan un intervalo válido en chars.index and count do not denote a valid range in chars.

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa)A fallback occurred (see Character Encoding in the .NET Framework for fuller explanation) - y --and- El valor de Fallback está establecido en EncoderExceptionFallback.Fallback is set to EncoderExceptionFallback.

Ejemplos

En el ejemplo de código siguiente se muestra cómo GetByteCount utilizar el método para devolver el número de bytes necesarios para codificar una matriz de caracteres mediante un Encodervalor de Unicode.The following code example demonstrates how to use the GetByteCount method to return the number of bytes required to encode an array of characters using a 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.
'

Comentarios

Este método no afecta al estado del codificador.This method does not affect the state of the encoder.

Para calcular el tamaño exacto de la GetBytes matriz que requiere para almacenar los bytes resultantes, la GetByteCountaplicación debe usar.To calculate the exact array size that GetBytes requires to store the resulting bytes, the application should use GetByteCount.

Si GetBytes se llama a flush con establecido falseen, el codificador almacena los caracteres finales al final del bloque de datos en un búfer interno y los usa en la siguiente operación de codificación.If GetBytes is called with flush set to false, the encoder stores trailing characters at the end of the data block in an internal buffer and uses them in the next encoding operation. La aplicación debe llamar GetByteCount a en un bloque de datos inmediatamente antes GetBytes de llamar a en el mismo bloque, de modo que todos los caracteres finales del bloque anterior se incluyan en el cálculo.The application should call GetByteCount on a block of data immediately before calling GetBytes on the same block, so that any trailing characters from the previous block are included in the calculation.

Consulte también:

Se aplica a