Sdílet prostřednictvím


UnicodeEncoding.GetCharCount Metoda

Definice

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů.

Přetížení

GetCharCount(Byte*, Int32)

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů počínaje zadaným bajtovým ukazatelem.

GetCharCount(Byte[], Int32, Int32)

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného pole bajtů.

GetCharCount(Byte*, Int32)

Zdroj:
UnicodeEncoding.cs
Zdroj:
UnicodeEncoding.cs
Zdroj:
UnicodeEncoding.cs

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů počínaje zadaným bajtovým ukazatelem.

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*

Ukazatel na první bajt, který chcete dekódovat.

count
Int32

Počet bajtů k dekódování.

Návraty

Počet znaků vytvořených dekódováním zadané posloupnosti bajtů.

Atributy

Výjimky

bytes je null (Nothing).

Hodnota count je menší než nula.

-nebo-

Výsledný počet bajtů je větší než maximální počet, který lze vrátit jako celé číslo.

Detekce chyb je povolená a bytes obsahuje neplatnou posloupnost bajtů.

Došlo k náhradnímu řešení (další informace najdete v tématu Kódování znaků v .NET).

-A-

DecoderFallback je nastavená na DecoderExceptionFallbackhodnotu .

Poznámky

K výpočtu přesné velikosti pole, která GetChars je nutná k uložení výsledných znaků, aplikace používá GetCharCount. K výpočtu maximální velikosti pole by aplikace měla použít GetMaxCharCount. Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda obecně provádí rychleji.

Při detekci chyb způsobí neplatná sekvence, že tato metoda vyvolá ArgumentExceptionchybu . Bez detekce chyb se neplatné sekvence ignorují a nedochází k žádné výjimce.

Viz také

Platí pro

GetCharCount(Byte[], Int32, Int32)

Zdroj:
UnicodeEncoding.cs
Zdroj:
UnicodeEncoding.cs
Zdroj:
UnicodeEncoding.cs

Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného pole bajtů.

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[]

Pole bajtů obsahující posloupnost bajtů, které se mají dekódovat.

index
Int32

Index prvního bajtu, který se má dekódovat.

count
Int32

Počet bajtů k dekódování.

Návraty

Počet znaků vytvořených dekódováním zadané posloupnosti bajtů.

Výjimky

bytes je null (Nothing).

index nebo count je menší než nula.

-nebo-

index a count neoznamujte platnou oblast v bytessouboru .

-nebo-

Výsledný počet bajtů je větší než maximální počet, který lze vrátit jako celé číslo.

Detekce chyb je povolená a bytes obsahuje neplatnou posloupnost bajtů.

Došlo k náhradnímu řešení (další informace najdete v tématu Kódování znaků v .NET).

-A-

DecoderFallback je nastavená na DecoderExceptionFallbackhodnotu .

Příklady

Následující příklad ukazuje, jak použít metodu GetCharCount k vrácení počtu znaků vytvořených dekódováním rozsahu prvků v bajtovém poli pomocí 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

Poznámky

K výpočtu přesné velikosti matice potřebné GetChars k uložení výsledných znaků aplikace používá GetCharCount. K výpočtu maximální velikosti pole by aplikace měla použít GetMaxCharCount. Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda obecně provádí rychleji.

Při detekci chyb způsobí neplatná sekvence, že tato metoda vyvolá ArgumentExceptionchybu . Bez detekce chyb se neplatné sekvence ignorují a nedochází k žádné výjimce.

Viz také

Platí pro