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.
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Byte berechnet, die durch codieren einer Reihe von Zeichen erzeugt werden.
Überlädt
| Name | Beschreibung |
|---|---|
| GetByteCount(ReadOnlySpan<Char>, Boolean) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die durch codieren einer Reihe von Zeichen in der Zeichenspanne erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll. |
| GetByteCount(Char*, Int32, Boolean) |
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die durch codieren einer Reihe von Zeichen erstellt werden, die am angegebenen Zeichenzeiger beginnen. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll. |
| GetByteCount(Char[], Int32, Int32, Boolean) |
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Byte berechnet, die durch codieren einer Reihe von Zeichen aus dem angegebenen Zeichenarray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll. |
Hinweise
Diese Methode wirkt sich nicht auf den Zustand 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 der Encoder mit flush "Set" 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 unmittelbar vor dem Aufrufen GetBytes desselben Blocks einen Datenblock aufrufenGetByteCount, sodass alle nachfolgenden Zeichen aus dem vorherigen Block in die Berechnung einbezogen werden.
GetByteCount(ReadOnlySpan<Char>, Boolean)
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die durch codieren einer Reihe von Zeichen in der Zeichenspanne erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll.
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>
Ein Zeichenbereich, der codiert werden soll.
- flush
- Boolean
trueum das Löschen des internen Zustands des Encoders nach der Berechnung zu simulieren; andernfalls . false
Gibt zurück
Die Anzahl der Byte, die durch Codieren der angegebenen Zeichen und aller Zeichen im internen Puffer erzeugt werden.
Gilt für:
GetByteCount(Char*, Int32, Boolean)
Wichtig
Diese API ist nicht CLS-kompatibel.
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die durch codieren einer Reihe von Zeichen erstellt werden, die am angegebenen Zeichenzeiger beginnen. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll.
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
Parameter
- chars
- Char*
Ein Zeiger auf das erste zeichen, das codiert werden soll.
- count
- Int32
Die Anzahl der zu codierenden Zeichen.
- flush
- Boolean
trueum das Löschen des internen Zustands des Encoders nach der Berechnung zu simulieren; andernfalls . false
Gibt zurück
Die Anzahl der Byte, die durch Codieren der angegebenen Zeichen und aller Zeichen im internen Puffer erzeugt werden.
- Attribute
Ausnahmen
chars ist null (Nothing in Visual Basic .NET).
count ist kleiner als 0 (null).
Ein Fallback ist aufgetreten (weitere Informationen finden Sie unter "Zeichencodierung in .NET")
-und-
Fallback ist auf EncoderExceptionFallback festgelegt.
Weitere Informationen
Gilt für:
GetByteCount(Char[], Int32, Int32, Boolean)
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Byte berechnet, die durch codieren einer Reihe von Zeichen aus dem angegebenen Zeichenarray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Encoders nach der Berechnung gelöscht werden soll.
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 Zeichensätze enthält.
- index
- Int32
Der Index des ersten zu codierenden Zeichens.
- count
- Int32
Die Anzahl der zu codierenden Zeichen.
- flush
- Boolean
trueum das Löschen des internen Zustands des Encoders nach der Berechnung zu simulieren; andernfalls . false
Gibt zurück
Die Anzahl der Byte, die durch Codieren der angegebenen Zeichen und aller Zeichen im internen Puffer erzeugt werden.
Ausnahmen
chars ist null.
index oder count ist kleiner als Null.
-oder-
index und count keinen gültigen Bereich in chars.
Ein Fallback ist aufgetreten (weitere Informationen finden Sie unter "Zeichencodierung in .NET")
-und-
Fallback ist auf EncoderExceptionFallback festgelegt.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die GetByteCount Methode verwendet wird, um die Anzahl der Bytes zurückzugeben, die zum Codieren eines Arrays von Zeichen mit einem Unicode Encodererforderlich sind.
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.
'