UnicodeEncoding.GetCharCount Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ů začínajících na zadaném bajtovém ukazateli. |
GetCharCount(Byte[], Int32, Int32) |
Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného bajtového pole. |
GetCharCount(Byte*, Int32)
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů začínajících na zadaném bajtovém ukazateli.
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 pro dekódování.
- count
- Int32
Počet bajtů k dekódování.
Návraty
Počet znaků vytvořených dekódováním zadané sekvence bajtů.
- Atributy
Výjimky
bytes
is 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 obnovení (další informace najdete v tématu Kódování znaků v .NET). -a- DecoderFallback je nastavena na DecoderExceptionFallbackhodnotu .
Poznámky
K výpočtu přesné velikosti pole, která GetChars vyžaduje uložení výsledných znaků, aplikace používá GetCharCount. K výpočtu maximální velikosti pole by měla aplikace použít GetMaxCharCount. Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda obvykle provádí rychleji.
Při detekci chyb způsobí neplatná sekvence tuto metodu ArgumentExceptionvyvolá . Bez detekce chyb jsou neplatné sekvence ignorovány a vyvolá se žádná výjimka.
Viz také
Platí pro
GetCharCount(Byte[], Int32, Int32)
Vypočítá počet znaků vytvořených dekódováním posloupnosti bajtů ze zadaného bajtového pole.
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[]
Bajtové pole obsahující posloupnost bajtů k dekódování.
- index
- Int32
Index prvního bajtu pro dekódování.
- count
- Int32
Počet bajtů k dekódování.
Návraty
Počet znaků vytvořených dekódováním zadané sekvence bajtů.
Výjimky
bytes
is null
(Nothing
).
index
nebo count
je menší než nula.
-nebo-
index
a count
neoznamujte platnou oblast v bytes
.
-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 obnovení (další informace najdete v tématu Kódování znaků v .NET). -a- DecoderFallback je nastavena 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é matici 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 pole vyžadované GetChars k uložení výsledných znaků použije GetCharCountaplikace . K výpočtu maximální velikosti pole by měla aplikace použít GetMaxCharCount. Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda obvykle provádí rychleji.
Při detekci chyb způsobí neplatná sekvence tuto metodu ArgumentExceptionvyvolá . Bez detekce chyb jsou neplatné sekvence ignorovány a vyvolá se žádná výjimka.