Decoder.GetChars Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.
- 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
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ó:
-é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
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ó:
-é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
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ó:
-é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.