Udostępnij za pośrednictwem


UnicodeEncoding.GetCharCount Metoda

Definicja

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów.

Przeciążenia

GetCharCount(Byte*, Int32)

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów rozpoczynających się od określonego wskaźnika bajtów.

GetCharCount(Byte[], Int32, Int32)

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów z określonej tablicy bajtów.

GetCharCount(Byte*, Int32)

Źródło:
UnicodeEncoding.cs
Źródło:
UnicodeEncoding.cs
Źródło:
UnicodeEncoding.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów rozpoczynających się od określonego wskaźnika bajtów.

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

Parametry

bytes
Byte*

Wskaźnik do pierwszego bajtu w celu dekodowania.

count
Int32

Liczba bajtów do dekodowania.

Zwraca

Liczba znaków generowanych przez dekodowanie określonej sekwencji bajtów.

Atrybuty

Wyjątki

bytes is null (Nothing).

Parametr count ma wartość niższą niż zero.

-lub-

Wynikowa liczba bajtów jest większa niż maksymalna liczba, którą można zwrócić jako liczbę całkowitą.

Wykrywanie błędów jest włączone i bytes zawiera nieprawidłową sekwencję bajtów.

Wystąpił rezerwowy (aby uzyskać więcej informacji, zobacz Kodowanie znaków na platformie .NET)

-I-

DecoderFallback jest ustawiona na DecoderExceptionFallbackwartość .

Uwagi

Aby obliczyć dokładny rozmiar tablicy, który GetChars wymaga przechowywania wynikowych znaków, aplikacja używa polecenia GetCharCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna użyć polecenia GetMaxCharCount. Metoda GetCharCount zazwyczaj przydziela mniej pamięci, podczas gdy GetMaxCharCount metoda zwykle wykonuje się szybciej.

W przypadku wykrywania błędów nieprawidłowa sekwencja powoduje, że ta metoda zgłasza błąd ArgumentException. Bez wykrywania błędów nieprawidłowe sekwencje są ignorowane i nie jest zgłaszany żaden wyjątek.

Zobacz też

Dotyczy

GetCharCount(Byte[], Int32, Int32)

Źródło:
UnicodeEncoding.cs
Źródło:
UnicodeEncoding.cs
Źródło:
UnicodeEncoding.cs

Oblicza liczbę znaków generowanych przez dekodowanie sekwencji bajtów z określonej tablicy bajtów.

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

Parametry

bytes
Byte[]

Tablica bajtów zawierająca sekwencję bajtów do dekodowania.

index
Int32

Indeks pierwszego bajtu do dekodowania.

count
Int32

Liczba bajtów do dekodowania.

Zwraca

Liczba znaków generowanych przez dekodowanie określonej sekwencji bajtów.

Wyjątki

bytes is null (Nothing).

index wartość lub count jest mniejsza niż zero.

-lub-

index i count nie oznaczają prawidłowego zakresu w byteselemecie .

-lub-

Wynikowa liczba bajtów jest większa niż maksymalna liczba, którą można zwrócić jako liczbę całkowitą.

Wykrywanie błędów jest włączone i bytes zawiera nieprawidłową sekwencję bajtów.

Wystąpił rezerwowy (aby uzyskać więcej informacji, zobacz Kodowanie znaków na platformie .NET)

-I-

DecoderFallback jest ustawiona na DecoderExceptionFallbackwartość .

Przykłady

W poniższym przykładzie pokazano, jak za pomocą GetCharCount metody zwracać liczbę znaków generowanych przez dekodowanie zakresu elementów w tablicy bajtów przy użyciu metody UnicodeEncoding.

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

Uwagi

Aby obliczyć dokładny rozmiar tablicy wymagany przez GetChars do przechowywania wynikowych znaków, aplikacja używa polecenia GetCharCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna użyć polecenia GetMaxCharCount. Metoda GetCharCount zazwyczaj przydziela mniej pamięci, podczas gdy GetMaxCharCount metoda zwykle wykonuje się szybciej.

W przypadku wykrywania błędów nieprawidłowa sekwencja powoduje, że ta metoda zgłasza błąd ArgumentException. Bez wykrywania błędów nieprawidłowe sekwencje są ignorowane i nie jest zgłaszany żaden wyjątek.

Zobacz też

Dotyczy