Decoder.GetChars Metódus

Definíció

Ha felülbírál egy származtatott osztályban, bájtok sorozatát kódolja karakterkészletté.

Túlterhelések

Name Description
GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

Ha egy származtatott osztályban felülbírál, a belső pufferben lévő span bájtok és bájtok sorozatát a megadott karaktermutatótól kezdődően tárolt karakterek halmazába kódolja. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

GetChars(Byte*, Int32, Char*, Int32, Boolean)

Ha egy származtatott osztályban felülbírál, a megadott bájtmutatótól kezdődő bájtok sorozatát, a belső pufferben lévő bájtokat pedig a megadott karaktermutatótól kezdődően tárolt karakterkészletbe dekódolja. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

GetChars(Byte[], Int32, Int32, Char[], Int32)

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből és a belső pufferben lévő bájtokból származó bájtok sorozatát dekódolja a megadott karaktertömbbe.

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből és a belső pufferben lévő bájtokból származó bájtok sorozatát dekódolja a megadott karaktertömbbe. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs

Ha egy származtatott osztályban felülbírál, a belső pufferben lévő span bájtok és bájtok sorozatát a megadott karaktermutatótól kezdődően tárolt karakterek halmazába kódolja. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

public:
 virtual int GetChars(ReadOnlySpan<System::Byte> bytes, Span<char> chars, bool flush);
public virtual int GetChars(ReadOnlySpan<byte> bytes, Span<char> chars, bool flush);
abstract member GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
override this.GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
Public Overridable Function GetChars (bytes As ReadOnlySpan(Of Byte), chars As Span(Of Char), flush As Boolean) As Integer

Paraméterek

bytes
ReadOnlySpan<Byte>

A dekódolni kívánt bájttartomány.

chars
Span<Char>

Az eredményként kapott karakterkészlet írásához használható span.

flush
Boolean

truea dekóder belső állapotának törlése az átalakítás után; egyéb esetben. false

Válaszok

A paraméter által chars megadott időtartamon belül írt karakterek tényleges száma.

Megjegyzések

Ne feledje, hogy az objektum menti az Decoder állapotot a következő GetCharshívás között: . Ha az alkalmazás adatstreamdel van végrehajtva, a flush paramétert true úgy kell beállítania, hogy az állapotinformációk kiürítve legyenek. Ezzel a beállítással a dekóder figyelmen kívül hagyja az adatblokk végén található érvénytelen bájtokat, és törli a belső puffert.

Az eredményként kapott karakterek tárolásához szükséges pontos span méret GetChars kiszámításához az alkalmazásnak a következőt kell használnia GetCharCount: .

Ha GetChars a rendszer úgy hívja flush meg, hogy falsea dekóder egy belső pufferben tárolja a záró bájtokat az adatblokk végén, és a következő dekódolási műveletben használja őket. Az alkalmazásnak közvetlenül ugyanazon blokk meghívása GetCharCount előtt meg kell hívnia GetChars egy adatblokkot, hogy az előző blokkból származó összes bájt szerepeljen a számításban.

Ha az alkalmazás egy bemeneti adatfolyam számos szegmensét szeretné átalakítani, fontolja meg a Convert metódus használatát. GetChars kivételt eredményez, ha a kimeneti tartomány nem elég nagy, de Convert a lehető legtöbb helyet kitölti, és visszaadja az olvasási bájtokat és a karaktereket, feltéve, hogy a kimeneti tömb legalább két karaktert engedélyez. További megjegyzésekért lásd a Encoding.GetChars témakört.

A következőre érvényes:

GetChars(Byte*, Int32, Char*, Int32, Boolean)

Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs

Fontos

Ez az API nem CLS-kompatibilis.

Ha egy származtatott osztályban felülbírál, a megadott bájtmutatótól kezdődő bájtok sorozatát, a belső pufferben lévő bájtokat pedig a megadott karaktermutatótól kezdődően tárolt karakterkészletbe dekódolja. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

public:
 virtual int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[<System.CLSCompliant(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int

Paraméterek

bytes
Byte*

A dekódolni kívánt első bájtra mutató mutató.

byteCount
Int32

A dekódolni kívánt bájtok száma.

chars
Char*

Az eredményként kapott karakterkészlet írásának megkezdéséhez mutató mutató.

charCount
Int32

Az írandó karakterek maximális száma.

flush
Boolean

truea dekóder belső állapotának törlése az átalakítás után; egyéb esetben. false

Válaszok

A paraméter által chars megjelölt helyen írt karakterek tényleges száma.

Attribútumok

Kivételek

bytes az null (Nothing).

-vagy-

chars az null (Nothing).

byteCount vagy charCount kisebb, mint nulla.

charCount kisebb, mint az eredményként kapott karakterek száma.

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

Fallback DecoderExceptionFallbackértékre van állítva.

Megjegyzések

Ne feledje, hogy az objektum menti az Decoder állapotot a következő GetCharshívás között: . Ha az alkalmazás adatstreamdel van végrehajtva, a flush paramétert true úgy kell beállítania, hogy az állapotinformációk kiürítve legyenek. Ezzel a beállítással a dekóder figyelmen kívül hagyja az adatblokk végén található érvénytelen bájtokat, és törli a belső puffert.

Az eredményként kapott karakterek tárolásához szükséges pontos pufferméret GetChars kiszámításához az alkalmazásnak a következőt kell használnia GetCharCount: .

Ha GetChars a rendszer úgy hívja flush meg, hogy falsea dekóder egy belső pufferben tárolja a záró bájtokat az adatblokk végén, és a következő dekódolási műveletben használja őket. Az alkalmazásnak közvetlenül ugyanazon blokk meghívása GetCharCount előtt meg kell hívnia GetChars egy adatblokkot, hogy az előző blokkból származó összes bájt szerepeljen a számításban.

Ha az alkalmazás egy bemeneti adatfolyam számos szegmensét szeretné átalakítani, fontolja meg a Convert metódus használatát. GetChars kivételt eredményez, ha a kimeneti puffer nem elég nagy, de Convert a lehető legtöbb helyet kitölti, és visszaadja az olvasási bájtokat és a karaktereket, feltéve, hogy a kimeneti tömb legalább két karaktert engedélyez. További megjegyzésekért lásd a Encoding.GetChars témakört.

Lásd még

A következőre érvényes:

GetChars(Byte[], Int32, Int32, Char[], Int32)

Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből és a belső pufferben lévő bájtokból származó bájtok sorozatát dekódolja a megadott karaktertömbbe.

public:
 abstract int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public abstract int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
abstract member GetChars : byte[] * int * int * char[] * int -> int
Public MustOverride Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer) As Integer

Paraméterek

bytes
Byte[]

A dekódolni kívánt bájtok sorozatát tartalmazó bájttömb.

byteIndex
Int32

A dekódolni kívánt első bájt indexe.

byteCount
Int32

A dekódolni kívánt bájtok száma.

chars
Char[]

Az eredményként kapott karakterkészletet tartalmazó karaktertömb.

charIndex
Int32

Az index, amelynél elkezdi írni az eredményként kapott karakterkészletet.

Válaszok

A beírt charskarakterek tényleges száma.

Kivételek

bytes az null (Nothing).

-vagy-

chars az null (Nothing).

byteIndex vagy byteCountcharIndex kisebb, mint nulla.

-vagy-

byteIndex és byteCount ne jelölje az érvényes tartományt a következőben bytes: .

-vagy-

charIndex érvénytelen index a következőben chars: .

chars nem rendelkezik elegendő kapacitással a tömb végétől charIndex a kapott karakterek elhelyezéséhez.

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

Fallback DecoderExceptionFallbackértékre van állítva.

Példák

Az alábbi példa bemutatja, hogyan kódolhat több elemet egy bájttömbből, és hogyan tárolhatja őket Unicode-karaktertömbben. A GetCharCount metódus a dekódolt elemek tömbben bytesvaló tárolásához szükséges karakterek számának kiszámítására szolgál. A GetChars metódus dekódolja a bájttömb megadott elemeit, és azokat az új karaktertömbben tárolja.

using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        Char[] chars;
        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);
        chars = new Char[charCount];
        int charsDecodedCount = uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0);

        Console.WriteLine(
            "{0} characters used to decode bytes.", charsDecodedCount
        );

        Console.Write("Decoded chars: ");
        foreach (Char c in chars) {
            Console.Write("[{0}]", c);
        }
        Console.WriteLine();
    }
}

/* This code example produces the following output.

7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]

*/
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        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)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = _
            uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0)
        
        Console.WriteLine( _
            "{0} characters used to decode bytes.", _
            charsDecodedCount _
        )
        
        Console.Write("Decoded chars: ")
        Dim c As Char
        For Each c In  chars
            Console.Write("[{0}]", c)
        Next c
        Console.WriteLine()
    End Sub
End Class

'This code example produces the following output.
'
'7 characters used to decode bytes.
'Decoded chars: [U][n][i][c][o][d][e]
'

Megjegyzések

Ne feledje, hogy az objektum menti az Decoder állapotot a következő GetCharshívás között: . Ha az alkalmazás adatstreamdel van végrehajtva, a flush paramétert true úgy kell beállítania, hogy az állapotinformációk kiürítve legyenek. Ezzel a beállítással a dekóder figyelmen kívül hagyja az adatblokk végén található érvénytelen bájtokat, és törli a belső puffert.

Az eredményként kapott karakterek tárolásához szükséges pontos tömbméret GetChars kiszámításához az alkalmazásnak a következőt kell használnia GetCharCount: .

Ha GetChars a rendszer úgy hívja flush meg, hogy falsea dekóder egy belső pufferben tárolja a záró bájtokat az adatblokk végén, és a következő dekódolási műveletben használja őket. Az alkalmazásnak közvetlenül ugyanazon blokk meghívása GetCharCount előtt meg kell hívnia GetChars egy adatblokkot, hogy az előző blokkból származó összes bájt szerepeljen a számításban.

Ha az alkalmazás egy bemeneti adatfolyam számos szegmensét szeretné átalakítani, fontolja meg a Convert metódus használatát. GetChars kivételt eredményez, ha a kimeneti puffer nem elég nagy, de Convert a lehető legtöbb helyet kitölti, és visszaadja az olvasási bájtokat és a karaktereket, feltéve, hogy a kimeneti tömb legalább két karaktert engedélyez. További megjegyzésekért lásd a Encoding.GetChars témakört.

Lásd még

A következőre érvényes:

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs
Forrás:
Decoder.cs

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből és a belső pufferben lévő bájtokból származó bájtok sorozatát dekódolja a megadott karaktertömbbe. A paraméter azt jelzi, hogy az átalakítás után törölje-e a dekóder belső állapotát.

public:
 virtual int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex, bool flush);
public virtual int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush);
abstract member GetChars : byte[] * int * int * char[] * int * bool -> int
override this.GetChars : byte[] * int * int * char[] * int * bool -> int
Public Overridable Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer, flush As Boolean) As Integer

Paraméterek

bytes
Byte[]

A dekódolni kívánt bájtok sorozatát tartalmazó bájttömb.

byteIndex
Int32

A dekódolni kívánt első bájt indexe.

byteCount
Int32

A dekódolni kívánt bájtok száma.

chars
Char[]

Az eredményként kapott karakterkészletet tartalmazó karaktertömb.

charIndex
Int32

Az index, amelynél elkezdi írni az eredményként kapott karakterkészletet.

flush
Boolean

truea dekóder belső állapotának törlése az átalakítás után; egyéb esetben. false

Válaszok

A paraméterbe chars írt karakterek tényleges száma.

Kivételek

bytes az null (Nothing).

-vagy-

chars az null (Nothing).

byteIndex vagy byteCountcharIndex kisebb, mint nulla.

-vagy-

byteIndex és byteCount ne jelölje az érvényes tartományt a következőben bytes: .

-vagy-

charIndex érvénytelen index a következőben chars: .

chars nem rendelkezik elegendő kapacitással a tömb végétől charIndex a kapott karakterek elhelyezéséhez.

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

Fallback DecoderExceptionFallbackértékre van állítva.

Megjegyzések

Ne feledje, hogy az objektum menti az Decoder állapotot a következő GetCharshívás között: . Ha az alkalmazás adatstreamdel van végrehajtva, a flush paramétert true úgy kell beállítania, hogy az állapotinformációk kiürítve legyenek. Ezzel a beállítással a dekóder figyelmen kívül hagyja az adatblokk végén található érvénytelen bájtokat, és törli a belső puffert.

Az eredményként kapott karakterek tárolásához szükséges pontos tömbméret GetChars kiszámításához az alkalmazásnak a következőt kell használnia GetCharCount: .

Ha GetChars a rendszer úgy hívja flush meg, hogy falsea dekóder egy belső pufferben tárolja a záró bájtokat az adatblokk végén, és a következő dekódolási műveletben használja őket. Az alkalmazásnak közvetlenül ugyanazon blokk meghívása GetCharCount előtt meg kell hívnia GetChars egy adatblokkot, hogy az előző blokkból származó összes bájt szerepeljen a számításban.

Ha az alkalmazás egy bemeneti adatfolyam számos szegmensét szeretné átalakítani, fontolja meg a Convert metódus használatát. GetChars kivételt eredményez, ha a kimeneti puffer nem elég nagy, de Convert a lehető legtöbb helyet kitölti, és visszaadja az olvasási bájtokat és a karaktereket, feltéve, hogy a kimeneti tömb legalább két karaktert engedélyez. További megjegyzésekért lásd a Encoding.GetChars témakört.

Lásd még

A következőre érvényes: