Teilen über


Encoder.GetByteCount Methode

Definition

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen erzeugt werden.

Überlädt

GetByteCount(ReadOnlySpan<Char>, Boolean)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Gruppe von Zeichen in der Spanne „chars“ erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

GetByteCount(Char*, Int32, Boolean)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Bytes, die beim Codieren der Zeichen ab dem Zeichenzeiger erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

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

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen aus dem angegebenen Zeichenarray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

Hinweise

Diese Methode wirkt sich nicht auf den Status des Encoders aus.

Um die genaue Arraygröße zu berechnen, die GetBytes zum Speichern der resultierenden Bytes erforderlich ist, sollte die Anwendung verwenden GetByteCount.

Wenn GetBytes mit flush festgelegt auf falseaufgerufen wird, speichert der Encoder nachfolgende Zeichen am Ende des Datenblocks in einem internen Puffer und verwendet sie im nächsten Codierungsvorgang. Die Anwendung sollte einen Datenblock unmittelbar vor dem Aufrufen GetBytes desselben Blocks aufrufenGetByteCount, damit alle nachfolgenden Zeichen aus dem vorherigen Block in die Berechnung einbezogen werden.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Quelle:
Encoder.cs
Quelle:
Encoder.cs
Quelle:
Encoder.cs

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Gruppe von Zeichen in der Spanne „chars“ erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

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

Parameter

chars
ReadOnlySpan<Char>

Eine zu codierende Zeichenspanne.

flush
Boolean

true, um das Löschen des internen Status des Encoders nach der Berechnung zu simulieren, andernfalls false.

Gibt zurück

Die Anzahl der Bytes, die durch Codieren der angegebenen Zeichen und der Zeichen im internen Puffer erzeugt wurden.

Gilt für:

GetByteCount(Char*, Int32, Boolean)

Quelle:
Encoder.cs
Quelle:
Encoder.cs
Quelle:
Encoder.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Bytes, die beim Codieren der Zeichen ab dem Zeichenzeiger erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

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

Parameter

chars
Char*

Ein Zeiger auf das erste zu codierende Zeichen.

count
Int32

Die Anzahl der zu codierenden Zeichen.

flush
Boolean

true, um das Löschen des internen Status des Encoders nach der Berechnung zu simulieren, andernfalls false.

Gibt zurück

Die Anzahl der Bytes, die durch Codieren der angegebenen Zeichen und der Zeichen im internen Puffer erzeugt wurden.

Attribute

Ausnahmen

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

count ist kleiner als Null.

Es ist ein Fallback aufgetreten (weitere Informationen finden Sie unter Zeichencodierung in .NET).

- und -

Für Fallback ist EncoderExceptionFallback festgelegt.

Weitere Informationen

Gilt für:

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

Quelle:
Encoder.cs
Quelle:
Encoder.cs
Quelle:
Encoder.cs

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen aus dem angegebenen Zeichenarray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung zu löschen ist.

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

Parameter

chars
Char[]

Das Zeichenarray, das die zu codierenden Zeichen enthält.

index
Int32

Der Index des ersten zu codierenden Zeichens.

count
Int32

Die Anzahl der zu codierenden Zeichen.

flush
Boolean

true, um das Löschen des internen Status des Encoders nach der Berechnung zu simulieren, andernfalls false.

Gibt zurück

Die Anzahl der Bytes, die durch Codieren der angegebenen Zeichen und der Zeichen im internen Puffer erzeugt wurden.

Ausnahmen

chars ist null.

index oder count ist kleiner als 0.

- oder -

index und count geben keinen gültigen Bereich in chars an.

Es ist ein Fallback aufgetreten (weitere Informationen finden Sie unter Zeichencodierung in .NET).

- und -

Für Fallback ist EncoderExceptionFallback festgelegt.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die GetByteCount -Methode verwendet wird, um die Anzahl von Bytes zurückzugeben, die zum Codieren eines Zeichenarrays mit einem Unicode erforderlich sind 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.
'

Weitere Informationen

Gilt für: