Decoder.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í.
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním posloupnosti bajtů.
Přetížení
GetCharCount(ReadOnlySpan<Byte>, Boolean) |
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů v rozpětí. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru. |
GetCharCount(Byte*, Int32, Boolean) |
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů počínaje zadaným ukazatelem bajtů. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru. |
GetCharCount(Byte[], Int32, Int32) |
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů ze zadaného bajtového pole. |
GetCharCount(Byte[], Int32, Int32, Boolean) |
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů ze zadaného bajtového pole. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru. |
GetCharCount(ReadOnlySpan<Byte>, Boolean)
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů v rozpětí. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.
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
Parametry
- bytes
- ReadOnlySpan<Byte>
Rozsah bajtů k dekódování.
- flush
- Boolean
true
pro simulaci vymazání vnitřního stavu kodéru po výpočtu; v opačném případě false
.
Návraty
Počet znaků vyprodukovaných dekódováním zadané sekvence bajtů a všech bajtů ve vnitřní vyrovnávací paměti.
Poznámky
Tato metoda nemá vliv na stav dekodéru.
Chcete-li vypočítat přesnou velikost vyrovnávací paměti, která GetChars vyžaduje uložení výsledných znaků, měla by aplikace použít GetCharCount .
Pokud GetChars
je volána s flush
nastavenou na false
, dekodér ukládá koncové bajty na konci bloku dat ve vnitřní vyrovnávací paměti a použije je při další operaci dekódování. Aplikace by měla zavolat GetCharCount
na blok dat hned před voláním GetChars
na stejný blok, aby všechny koncové bajty z předchozího bloku byly zahrnuty do výpočtu.
Platí pro
GetCharCount(Byte*, Int32, Boolean)
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů počínaje zadaným ukazatelem bajtů. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.
public:
virtual int GetCharCount(System::Byte* bytes, int count, bool flush);
[System.CLSCompliant(false)]
public virtual int GetCharCount (byte* bytes, int count, bool flush);
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
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
Parametry
- bytes
- Byte*
Ukazatel na první bajt k dekódování.
- count
- Int32
Počet bajtů, které se mají dekódovat.
- flush
- Boolean
true
pro simulaci vymazání vnitřního stavu kodéru po výpočtu; v opačném případě false
.
Návraty
Počet znaků vyprodukovaných dekódováním zadané sekvence bajtů a všech bajtů ve vnitřní vyrovnávací paměti.
- Atributy
Výjimky
bytes
je null
( Nothing
v Visual Basic .net).
Hodnota count
je menší než nula.
Došlo k chybě Fallback (Další informace najdete v tématu kódování znaků v rozhraní .NET).
ani
Fallback je nastaven na DecoderExceptionFallback .
Poznámky
Tato metoda nemá vliv na stav dekodéru.
Chcete-li vypočítat přesnou velikost pole, která GetChars vyžaduje uložení výsledných znaků, měla by aplikace použít GetCharCount .
Pokud GetChars
je volána s flush
nastavenou na false
, dekodér ukládá koncové bajty na konci bloku dat ve vnitřní vyrovnávací paměti a použije je při další operaci dekódování. Aplikace by měla zavolat GetCharCount
na blok dat hned před voláním GetChars
na stejný blok, aby všechny koncové bajty z předchozího bloku byly zahrnuty do výpočtu.
Viz také
Platí pro
GetCharCount(Byte[], Int32, Int32)
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů ze zadaného bajtového pole.
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
Parametry
- bytes
- Byte[]
Pole bajtů obsahující sekvenci bajtů k dekódování.
- index
- Int32
Index prvního bajtu, který se má dekódovat
- count
- Int32
Počet bajtů, které se mají dekódovat.
Návraty
Počet znaků vyprodukovaných dekódováním zadané sekvence bajtů a všech bajtů ve vnitřní vyrovnávací paměti.
Výjimky
bytes
je null
( Nothing
).
index
nebo count
je menší než nula.
-nebo-
index
a count
neměňte si platný rozsah v bytes
.
Došlo k chybě Fallback (Další informace najdete v tématu kódování znaků v rozhraní .NET).
ani
Fallback je nastaven na DecoderExceptionFallback .
Příklady
Následující příklad kódu ukazuje, jak použít GetCharCount metodu pro výpočet počtu znaků potřebných k dekódování zadaného rozsahu bajtů v poli.
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.
'
Poznámky
Tato metoda nemá vliv na stav dekodéru.
Chcete-li vypočítat přesnou velikost pole, která GetChars vyžaduje uložení výsledných znaků, měla by aplikace použít GetCharCount .
Pokud GetChars
je volána s flush
nastavenou na false
, dekodér ukládá koncové bajty na konci bloku dat ve vnitřní vyrovnávací paměti a použije je při další operaci dekódování. Aplikace by měla zavolat GetCharCount
na blok dat hned před voláním GetChars
na stejný blok, aby všechny koncové bajty z předchozího bloku byly zahrnuty do výpočtu.
Viz také
Platí pro
GetCharCount(Byte[], Int32, Int32, Boolean)
Při přepsání v odvozené třídě vypočítá počet znaků vyprodukovaných dekódováním sekvence bajtů ze zadaného bajtového pole. Parametr určuje, zda se má po výpočtu vymazat vnitřní stav dekodéru.
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
Parametry
- bytes
- Byte[]
Pole bajtů obsahující sekvenci bajtů k dekódování.
- index
- Int32
Index prvního bajtu, který se má dekódovat
- count
- Int32
Počet bajtů, které se mají dekódovat.
- flush
- Boolean
true
pro simulaci vymazání vnitřního stavu kodéru po výpočtu; v opačném případě false
.
Návraty
Počet znaků vyprodukovaných dekódováním zadané sekvence bajtů a všech bajtů ve vnitřní vyrovnávací paměti.
- Atributy
Výjimky
bytes
je null
( Nothing
).
index
nebo count
je menší než nula.
-nebo-
index
a count
neměňte si platný rozsah v bytes
.
Došlo k chybě Fallback (Další informace najdete v tématu kódování znaků v rozhraní .NET).
ani
Fallback je nastaven na DecoderExceptionFallback .
Poznámky
Tato metoda nemá vliv na stav dekodéru.
Chcete-li vypočítat přesnou velikost pole, která GetChars vyžaduje uložení výsledných znaků, měla by aplikace použít GetCharCount .
Pokud GetChars
je volána s flush
nastavenou na false
, dekodér ukládá koncové bajty na konci bloku dat ve vnitřní vyrovnávací paměti a použije je při další operaci dekódování. Aplikace by měla zavolat GetCharCount
na blok dat hned před voláním GetChars
na stejný blok, aby všechny koncové bajty z předchozího bloku byly zahrnuty do výpočtu.