Freigeben über


Decoder.GetCharCount Methode

Definition

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge erzeugt werden.

Überlädt

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren der Bytefolge in der Spanne erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

GetCharCount(Byte*, Int32, Boolean)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

GetCharCount(Byte[], Int32, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.

GetCharCount(Byte[], Int32, Int32, Boolean)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Quelle:
Decoder.cs
Quelle:
Decoder.cs
Quelle:
Decoder.cs

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren der Bytefolge in der Spanne erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

public:
 virtual int GetCharCount(ReadOnlySpan<System::Byte> bytes, bool flush);
public virtual int GetCharCount (ReadOnlySpan<byte> bytes, bool flush);
abstract member GetCharCount : ReadOnlySpan<byte> * bool -> int
override this.GetCharCount : ReadOnlySpan<byte> * bool -> int
Public Overridable Function GetCharCount (bytes As ReadOnlySpan(Of Byte), flush As Boolean) As Integer

Parameter

bytes
ReadOnlySpan<Byte>

Eine zu decodierende Bytespanne.

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 Zeichen, die beim Decodieren der angegebenen Bytesequenz erzeugt werden, und jeglicher Bytes im internen Puffer.

Hinweise

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

Um die genaue Puffergröße zu berechnen, die GetChars zum Speichern der resultierenden Zeichen erforderlich ist, sollte die Anwendung verwenden GetCharCount.

Wenn GetChars aufgerufen wird und flush auf falsefestgelegt ist, speichert der Decoder nachfolgende Bytes am Ende des Datenblocks in einem internen Puffer und verwendet sie im nächsten Decodierungsvorgang. Die Anwendung sollte einen Datenblock unmittelbar vor dem Aufrufen GetChars desselben Blocks aufrufenGetCharCount, damit alle nachgestellten Bytes aus dem vorherigen Block in die Berechnung einbezogen werden.

Gilt für:

GetCharCount(Byte*, Int32, Boolean)

Quelle:
Decoder.cs
Quelle:
Decoder.cs
Quelle:
Decoder.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

public:
 virtual int GetCharCount(System::Byte* bytes, int count, bool flush);
[System.CLSCompliant(false)]
public virtual int GetCharCount (byte* bytes, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetCharCount (byte* bytes, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetCharCount (byte* bytes, int count, bool flush);
[<System.CLSCompliant(false)>]
abstract member GetCharCount : nativeptr<byte> * int * bool -> int
override this.GetCharCount : nativeptr<byte> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetCharCount : nativeptr<byte> * int * bool -> int
override this.GetCharCount : nativeptr<byte> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetCharCount : nativeptr<byte> * int * bool -> int
override this.GetCharCount : nativeptr<byte> * int * bool -> int

Parameter

bytes
Byte*

Ein Zeiger auf das erste zu decodierende Byte.

count
Int32

Die Anzahl der zu decodierenden Bytes.

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 Zeichen, die beim Decodieren der angegebenen Bytesequenz erzeugt werden, und jeglicher Bytes im internen Puffer.

Attribute

Ausnahmen

bytes 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 DecoderExceptionFallback festgelegt.

Hinweise

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

Um die genaue Arraygröße zu berechnen, die GetChars zum Speichern der resultierenden Zeichen erforderlich ist, sollte die Anwendung verwenden GetCharCount.

Wenn GetChars aufgerufen wird und flush auf falsefestgelegt ist, speichert der Decoder nachfolgende Bytes am Ende des Datenblocks in einem internen Puffer und verwendet sie im nächsten Decodierungsvorgang. Die Anwendung sollte einen Datenblock unmittelbar vor dem Aufrufen GetChars desselben Blocks aufrufenGetCharCount, damit alle nachgestellten Bytes aus dem vorherigen Block in die Berechnung einbezogen werden.

Weitere Informationen

Gilt für:

GetCharCount(Byte[], Int32, Int32)

Quelle:
Decoder.cs
Quelle:
Decoder.cs
Quelle:
Decoder.cs

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.

public:
 abstract int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public abstract int GetCharCount (byte[] bytes, int index, int count);
abstract member GetCharCount : byte[] * int * int -> int
Public MustOverride Function GetCharCount (bytes As Byte(), index As Integer, count As Integer) As Integer

Parameter

bytes
Byte[]

Das Bytearray, das die zu decodierende Bytefolge enthält.

index
Int32

Der Index des ersten zu decodierenden Bytes.

count
Int32

Die Anzahl der zu decodierenden Bytes.

Gibt zurück

Die Anzahl der Zeichen, die beim Decodieren der angegebenen Bytesequenz erzeugt werden, und jeglicher Bytes im internen Puffer.

Ausnahmen

bytes ist null(Nothing).

index oder count ist kleiner als 0.

- oder -

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

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

- und -

Für Fallback ist DecoderExceptionFallback festgelegt.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die GetCharCount -Methode verwendet wird, um die Anzahl der Zeichen zu berechnen, die zum Decodieren des angegebenen Bytebereichs im Array erforderlich sind.

using namespace System;
using namespace System::Text;
int main()
{
   array<Byte>^bytes = {85,0,110,0,105,0,99,0,111,0,100,0,101,0};
   Decoder^ uniDecoder = Encoding::Unicode->GetDecoder();
   int charCount = uniDecoder->GetCharCount( bytes, 0, bytes->Length );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}

/* This code example produces the following output.

7 characters needed to decode bytes.

*/
using System;
using System.Text;

class DecoderExample {
    public static void Main() {
        Byte[] bytes = new Byte[] {
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
        };

        Decoder uniDecoder = Encoding.Unicode.GetDecoder();
        int charCount = uniDecoder.GetCharCount(bytes, 0, bytes.Length);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}

/* This code example produces the following output.

7 characters needed to decode bytes.

*/
Imports System.Text

Class DecoderExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = { _
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0 _
        }
        
        Dim uniDecoder As Decoder = Encoding.Unicode.GetDecoder()
        Dim charCount As Integer = uniDecoder.GetCharCount(bytes, 0, bytes.Length)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    End Sub
End Class

'This code example produces the following output.
'
'7 characters needed to decode bytes.
'

Hinweise

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

Um die genaue Arraygröße zu berechnen, die GetChars zum Speichern der resultierenden Zeichen erforderlich ist, sollte die Anwendung verwenden GetCharCount.

Wenn GetChars aufgerufen wird und flush auf falsefestgelegt ist, speichert der Decoder nachfolgende Bytes am Ende des Datenblocks in einem internen Puffer und verwendet sie im nächsten Decodierungsvorgang. Die Anwendung sollte einen Datenblock unmittelbar vor dem Aufrufen GetChars desselben Blocks aufrufenGetCharCount, damit alle nachgestellten Bytes aus dem vorherigen Block in die Berechnung einbezogen werden.

Weitere Informationen

Gilt für:

GetCharCount(Byte[], Int32, Int32, Boolean)

Quelle:
Decoder.cs
Quelle:
Decoder.cs
Quelle:
Decoder.cs

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden. Ein Parameter gibt an, ob der interne Zustand des Decoders nach der Kalkulation gelöscht werden soll.

public:
 virtual int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count, bool flush);
public virtual int GetCharCount (byte[] bytes, int index, int count, bool flush);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetCharCount (byte[] bytes, int index, int count, bool flush);
abstract member GetCharCount : byte[] * int * int * bool -> int
override this.GetCharCount : byte[] * int * int * bool -> int
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetCharCount : byte[] * int * int * bool -> int
override this.GetCharCount : byte[] * int * int * bool -> int
Public Overridable Function GetCharCount (bytes As Byte(), index As Integer, count As Integer, flush As Boolean) As Integer

Parameter

bytes
Byte[]

Das Bytearray, das die zu decodierende Bytefolge enthält.

index
Int32

Der Index des ersten zu decodierenden Bytes.

count
Int32

Die Anzahl der zu decodierenden Bytes.

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 Zeichen, die beim Decodieren der angegebenen Bytesequenz erzeugt werden, und jeglicher Bytes im internen Puffer.

Attribute

Ausnahmen

bytes ist null(Nothing).

index oder count ist kleiner als 0.

- oder -

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

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

- und -

Für Fallback ist DecoderExceptionFallback festgelegt.

Hinweise

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

Um die genaue Arraygröße zu berechnen, die GetChars zum Speichern der resultierenden Zeichen erforderlich ist, sollte die Anwendung verwenden GetCharCount.

Wenn GetChars aufgerufen wird und flush auf falsefestgelegt ist, speichert der Decoder nachfolgende Bytes am Ende des Datenblocks in einem internen Puffer und verwendet sie im nächsten Decodierungsvorgang. Die Anwendung sollte einen Datenblock unmittelbar vor dem Aufrufen GetChars desselben Blocks aufrufenGetCharCount, damit alle nachgestellten Bytes aus dem vorherigen Block in die Berechnung einbezogen werden.

Weitere Informationen

Gilt für: