Condividi tramite


Encoder.GetByteCount Metodo

Definizione

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri.

Overload

GetByteCount(ReadOnlySpan<Char>, Boolean)

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo di caratteri "chars". Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

GetByteCount(Char*, Int32, Boolean)

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore ai caratteri specificato. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

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

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla matrice di caratteri specificata. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

Commenti

Questo metodo non influisce sullo stato del codificatore.

Per calcolare le dimensioni esatte della matrice che GetBytes richiede di archiviare i byte risultanti, l'applicazione deve usare GetByteCount.

Se GetBytes viene chiamato con flush impostato su false, il codificatore archivia i caratteri finali alla fine del blocco di dati in un buffer interno e li usa nell'operazione di codifica successiva. L'applicazione deve chiamare GetByteCount immediatamente un blocco di dati prima di chiamare GetBytes lo stesso blocco, in modo che tutti i caratteri finali del blocco precedente siano inclusi nel calcolo.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Origine:
Encoder.cs
Origine:
Encoder.cs
Origine:
Encoder.cs

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo di caratteri "chars". Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

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

Parametri

chars
ReadOnlySpan<Char>

Intervallo di caratteri da codificare.

flush
Boolean

true per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false.

Restituisce

Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.

Si applica a

GetByteCount(Char*, Int32, Boolean)

Origine:
Encoder.cs
Origine:
Encoder.cs
Origine:
Encoder.cs

Importante

Questa API non è conforme a CLS.

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore ai caratteri specificato. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

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

Parametri

chars
Char*

Puntatore al primo carattere da codificare.

count
Int32

Numero di caratteri da codificare.

flush
Boolean

true per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false.

Restituisce

Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.

Attributi

Eccezioni

chars è null (Nothing in Visual Basic .NET).

count è minore di zero.

Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)

-e-

Fallback è impostato su EncoderExceptionFallback.

Vedi anche

Si applica a

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

Origine:
Encoder.cs
Origine:
Encoder.cs
Origine:
Encoder.cs

Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla matrice di caratteri specificata. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.

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

Parametri

chars
Char[]

Matrice di caratteri contenente il set di caratteri da codificare.

index
Int32

Indice del primo carattere da codificare.

count
Int32

Numero di caratteri da codificare.

flush
Boolean

true per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false.

Restituisce

Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.

Eccezioni

chars è null.

index o count è minore di zero.

-oppure-

index e count non indicano un intervallo valido in chars.

Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)

-e-

Fallback è impostato su EncoderExceptionFallback.

Esempio

Nell'esempio di codice seguente viene illustrato come usare il metodo per restituire il GetByteCount numero di byte necessari per codificare una matrice di caratteri usando un oggetto 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.
'

Vedi anche

Si applica a