Encoder.GetByteCount Metodo

Definizione

In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri.

Overload

Nome Descrizione
GetByteCount(ReadOnlySpan<Char>, Boolean)

In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo "chars". Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo.

GetByteCount(Char*, Int32, Boolean)

Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo.

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

In caso di 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 cancellare lo stato interno del codificatore dopo il calcolo.

Commenti

Questo metodo non influisce sullo stato del codificatore.

Per calcolare la dimensione esatta 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 su un blocco di dati immediatamente prima di chiamare GetByteCountGetBytes sullo stesso blocco, in modo che tutti i caratteri finali del blocco precedente siano inclusi nel calcolo.

GetByteCount(ReadOnlySpan<Char>, Boolean)

In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo "chars". Un parametro indica se cancellare lo stato interno del codificatore 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 codificatore dopo il calcolo; in caso contrario, false.

Valori restituiti

Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri nel buffer interno.

Si applica a

GetByteCount(Char*, Int32, Boolean)

Importante

Questa API non è conforme a CLS.

Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo.

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

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 codificatore dopo il calcolo; in caso contrario, false.

Valori restituiti

Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri 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)

In caso di 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 cancellare lo stato interno del codificatore 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 codificatore dopo il calcolo; in caso contrario, false.

Valori restituiti

Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri 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 utilizzare il GetByteCount metodo per restituire il numero di byte necessari per codificare una matrice di caratteri usando un oggetto 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.
'

Vedi anche

Si applica a