UnicodeEncoding.GetCharCount Methode

Definition

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge erzeugt werden.

Überlädt

GetCharCount(Byte*, Int32)

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden.

GetCharCount(Byte[], Int32, Int32)

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.

GetCharCount(Byte*, Int32)

Wichtig

Diese API ist nicht CLS-kompatibel.

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden.

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

Parameter

bytes
Byte*

Ein Zeiger auf das erste zu decodierende Byte.

count
Int32

Die Anzahl der zu decodierenden Bytes.

Gibt zurück

Int32

Die Anzahl der Zeichen, die beim Decodieren der angegebenen Bytefolge erzeugt werden.

Attribute

Ausnahmen

bytes ist null(Nothing).

count ist kleiner als Null.

- oder - Die sich ergebende Anzahl von Bytes ist höher als die maximale Anzahl, die als ganze Zahl zurückgegeben werden kann.

Die Fehlererkennung ist aktiviert, und bytes enthält eine ungültige Folge von Bytes.

Es ist ein Fallback aufgetreten (weitere Informationen finden Sie unter Zeichencodierung in .NET). - und - Für DecoderFallback ist DecoderExceptionFallback festgelegt.

Hinweise

Um die genaue Arraygröße zu berechnen, die GetChars zum Speichern der resultierenden Zeichen erforderlich ist, wird die Anwendung verwendet GetCharCount. Um die maximale Arraygröße zu berechnen, sollte die Anwendung verwenden GetMaxCharCount. Die Methode weist im Allgemeinen weniger Arbeitsspeicher zu, während die GetCharCount GetMaxCharCount Methode im Allgemeinen schneller ausgeführt wird.

Bei der Fehlererkennung führt eine ungültige Sequenz dazu, dass diese Methode eine ArgumentException. Ohne Fehlererkennung werden ungültige Sequenzen ignoriert, und keine Ausnahme wird ausgelöst.

Siehe auch

Gilt für

GetCharCount(Byte[], Int32, Int32)

Berechnet die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.

public:
 override int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public override int GetCharCount (byte[] bytes, int index, int count);
override this.GetCharCount : byte[] * int * int -> int
Public Overrides 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

Int32

Die Anzahl der Zeichen, die beim Decodieren der angegebenen Bytefolge erzeugt werden.

Ausnahmen

bytes ist null(Nothing).

index oder count ist kleiner als 0.

- oder - index und count geben keinen gültigen Bereich in bytesan.

- oder - Die sich ergebende Anzahl von Bytes ist höher als die maximale Anzahl, die als ganze Zahl zurückgegeben werden kann.

Die Fehlererkennung ist aktiviert, und bytes enthält eine ungültige Folge von Bytes.

Es ist ein Fallback aufgetreten (weitere Informationen finden Sie unter Zeichencodierung in .NET). - und - Für DecoderFallback ist DecoderExceptionFallback festgelegt.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die Methode verwendet GetCharCount wird, um die Anzahl der Zeichen zurückzugeben, die von der Decodierung eines Bereichs von Elementen in einem Bytearray mit UnicodeEncodingverwendet werden.

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};
   UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
   int charCount = Unicode->GetCharCount( bytes, 2, 8 );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}
using System;
using System.Text;

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

        UnicodeEncoding Unicode = new UnicodeEncoding();
        int charCount = Unicode.GetCharCount(bytes, 2, 8);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = {85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0}
        
        Dim uni As New UnicodeEncoding()
        Dim charCount As Integer = uni.GetCharCount(bytes, 2, 8)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    End Sub
End Class

Hinweise

Um die genaue Arraygröße zu berechnen, die erforderlich GetChars ist, um die resultierenden Zeichen zu speichern, wird die Anwendung verwendet GetCharCount. Um die maximale Arraygröße zu berechnen, sollte die Anwendung verwenden GetMaxCharCount. Die Methode weist im Allgemeinen weniger Arbeitsspeicher zu, während die GetCharCount GetMaxCharCount Methode im Allgemeinen schneller ausgeführt wird.

Bei der Fehlererkennung führt eine ungültige Sequenz dazu, dass diese Methode eine ArgumentException. Ohne Fehlererkennung werden ungültige Sequenzen ignoriert, und keine Ausnahme wird ausgelöst.

Siehe auch

Gilt für