Encoder.GetByteCount Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 false
aufgerufen 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.
'