Decoder.GetChars Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een reeks bytes gedecodeert in een reeks tekens.

Overloads

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

Wanneer deze wordt overschreven in een afgeleide klasse, ontsleutelt u een reeks spanbytes en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

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

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes die beginnen bij de opgegeven byteaanwijzer en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

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

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix.

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

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

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

Wanneer deze wordt overschreven in een afgeleide klasse, ontsleutelt u een reeks spanbytes en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

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

Parameters

bytes
ReadOnlySpan<Byte>

Een bytespanne om te decoderen.

chars
Span<Char>

Een bereik om de resulterende set tekens te schrijven.

flush
Boolean

true om de interne toestand van de decoder na de conversie te wissen; anders, false.

Retouren

Het werkelijke aantal tekens dat is geschreven op het bereik dat wordt aangegeven door de chars parameter.

Opmerkingen

Houd er rekening mee dat het object de Decoder status opslaat tussen aanroepen naar GetChars. Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet deze de flush parameter instellen om true ervoor te zorgen dat de statusinformatie wordt leeggemaakt. Met deze instelling negeert de decoder ongeldige bytes aan het einde van het gegevensblok en wordt de interne buffer gewist.

Als u de exacte spangrootte wilt berekenen die GetChars nodig is om de resulterende tekens op te slaan, moet de toepassing worden gebruikt GetCharCount.

Als GetChars wordt aangeroepen met flush ingesteld op false, slaat de decoder volgbytes op aan het einde van het gegevensblok in een interne buffer en gebruikt deze in de volgende decoderingsbewerking. De toepassing moet onmiddellijk een blok met gegevens aanroepen GetCharCount voordat hetzelfde blok wordt aangeroepen GetChars , zodat eventuele volgbytes uit het vorige blok worden opgenomen in de berekening.

Als uw toepassing veel segmenten van een invoerstroom wilt converteren, kunt u overwegen de Convert methode te gebruiken. GetChars genereert een uitzondering als de uitvoerspanne niet groot genoeg is, maar Convert zo veel mogelijk ruimte opvult en de geschreven bytes en tekens retourneert, mits de uitvoermatrix ten minste twee tekens toestaat. Zie ook het Encoding.GetChars onderwerp voor meer opmerkingen.

Van toepassing op

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

Belangrijk

Deze API is niet CLS-conform.

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes die beginnen bij de opgegeven byteaanwijzer en bytes in de interne buffer in een set tekens die zijn opgeslagen vanaf de opgegeven tekenaanwijzer. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

public:
 virtual int GetChars(System::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)]
public virtual int GetChars(byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[<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
[<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

Parameters

bytes
Byte*

Een aanwijzer naar de eerste byte om te decoderen.

byteCount
Int32

Het aantal bytes dat moet worden gedecodeerd.

chars
Char*

Een aanwijzer naar de locatie waar de resulterende set tekens moet worden geschreven.

charCount
Int32

Het maximum aantal tekens dat moet worden geschreven.

flush
Boolean

true om de interne toestand van de decoder na de conversie te wissen; anders, false.

Retouren

Het werkelijke aantal tekens dat is geschreven op de locatie die door de chars parameter wordt aangegeven.

Kenmerken

Uitzonderingen

bytes is null (Nothing).

– of –

chars is null (Nothing).

byteCount of charCount kleiner is dan nul.

charCount is kleiner dan het resulterende aantal tekens.

Er is een terugval opgetreden (zie Character Encoding in .NET)

en

Fallback is ingesteld op DecoderExceptionFallback.

Opmerkingen

Houd er rekening mee dat het object de Decoder status opslaat tussen aanroepen naar GetChars. Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet deze de flush parameter instellen om true ervoor te zorgen dat de statusinformatie wordt leeggemaakt. Met deze instelling negeert de decoder ongeldige bytes aan het einde van het gegevensblok en wordt de interne buffer gewist.

Als u de exacte buffergrootte wilt berekenen die GetChars nodig is om de resulterende tekens op te slaan, moet de toepassing worden gebruikt GetCharCount.

Als GetChars wordt aangeroepen met flush ingesteld op false, slaat de decoder volgbytes op aan het einde van het gegevensblok in een interne buffer en gebruikt deze in de volgende decoderingsbewerking. De toepassing moet onmiddellijk een blok met gegevens aanroepen GetCharCount voordat hetzelfde blok wordt aangeroepen GetChars , zodat eventuele volgbytes uit het vorige blok worden opgenomen in de berekening.

Als uw toepassing veel segmenten van een invoerstroom wilt converteren, kunt u overwegen de Convert methode te gebruiken. GetChars genereert een uitzondering als de uitvoerbuffer niet groot genoeg is, maar Convert zo veel mogelijk ruimte opvult en de geschreven bytes en tekens retourneert, mits de uitvoermatrix ten minste twee tekens toestaat. Zie ook het Encoding.GetChars onderwerp voor meer opmerkingen.

Zie ook

Van toepassing op

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

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix.

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

Parameters

bytes
Byte[]

De bytematrix met de reeks bytes die moet worden gedecodeerd.

byteIndex
Int32

De index van de eerste byte om te decoderen.

byteCount
Int32

Het aantal bytes dat moet worden gedecodeerd.

chars
Char[]

De tekenmatrix die de resulterende set tekens bevat.

charIndex
Int32

De index waarop de resulterende set tekens moet worden geschreven.

Retouren

Het werkelijke aantal tekens dat is geschreven in chars.

Uitzonderingen

bytes is null (Nothing).

– of –

chars is null (Nothing).

byteIndex of byteCountcharIndex kleiner is dan nul.

– of –

byteIndex en byteCount geef geen geldig bereik aan in bytes.

– of –

charIndex is geen geldige index in chars.

chars heeft niet voldoende capaciteit van charIndex tot het einde van de matrix voor de resulterende tekens.

Er is een terugval opgetreden (zie Character Encoding in .NET)

en

Fallback is ingesteld op DecoderExceptionFallback.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een bereik van elementen uit een bytematrix decoderen en opslaat in een Unicode-tekenmatrix. De GetCharCount methode wordt gebruikt om het aantal tekens te berekenen dat nodig is voor het opslaan van de gedecodeerde elementen in de matrix bytes. De GetChars methode ontsleutelt de opgegeven elementen in de bytematrix en slaat deze op in de nieuwe tekenmatrix.

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

Opmerkingen

Houd er rekening mee dat het object de Decoder status opslaat tussen aanroepen naar GetChars. Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet deze de flush parameter instellen om true ervoor te zorgen dat de statusinformatie wordt leeggemaakt. Met deze instelling negeert de decoder ongeldige bytes aan het einde van het gegevensblok en wordt de interne buffer gewist.

Als u de exacte matrixgrootte wilt berekenen die GetChars nodig is om de resulterende tekens op te slaan, moet de toepassing worden gebruikt GetCharCount.

Als GetChars wordt aangeroepen met flush ingesteld op false, slaat de decoder volgbytes op aan het einde van het gegevensblok in een interne buffer en gebruikt deze in de volgende decoderingsbewerking. De toepassing moet onmiddellijk een blok met gegevens aanroepen GetCharCount voordat hetzelfde blok wordt aangeroepen GetChars , zodat eventuele volgbytes uit het vorige blok worden opgenomen in de berekening.

Als uw toepassing veel segmenten van een invoerstroom wilt converteren, kunt u overwegen de Convert methode te gebruiken. GetChars genereert een uitzondering als de uitvoerbuffer niet groot genoeg is, maar Convert zo veel mogelijk ruimte opvult en de geschreven bytes en tekens retourneert, mits de uitvoermatrix ten minste twee tekens toestaat. Zie ook het Encoding.GetChars onderwerp voor meer opmerkingen.

Zie ook

Van toepassing op

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

Wanneer deze worden overschreven in een afgeleide klasse, ontsleutelt u een reeks bytes van de opgegeven bytematrix en eventuele bytes in de interne buffer in de opgegeven tekenmatrix. Een parameter geeft aan of de interne status van de decoder na de conversie moet worden gewist.

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

Parameters

bytes
Byte[]

De bytematrix met de reeks bytes die moet worden gedecodeerd.

byteIndex
Int32

De index van de eerste byte om te decoderen.

byteCount
Int32

Het aantal bytes dat moet worden gedecodeerd.

chars
Char[]

De tekenmatrix die de resulterende set tekens bevat.

charIndex
Int32

De index waarop de resulterende set tekens moet worden geschreven.

flush
Boolean

true om de interne toestand van de decoder na de conversie te wissen; anders, false.

Retouren

Het werkelijke aantal tekens dat in de chars parameter is geschreven.

Uitzonderingen

bytes is null (Nothing).

– of –

chars is null (Nothing).

byteIndex of byteCountcharIndex kleiner is dan nul.

– of –

byteIndex en byteCount geef geen geldig bereik aan in bytes.

– of –

charIndex is geen geldige index in chars.

chars heeft niet voldoende capaciteit van charIndex tot het einde van de matrix voor de resulterende tekens.

Er is een terugval opgetreden (zie Character Encoding in .NET)

en

Fallback is ingesteld op DecoderExceptionFallback.

Opmerkingen

Houd er rekening mee dat het object de Decoder status opslaat tussen aanroepen naar GetChars. Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet deze de flush parameter instellen om true ervoor te zorgen dat de statusinformatie wordt leeggemaakt. Met deze instelling negeert de decoder ongeldige bytes aan het einde van het gegevensblok en wordt de interne buffer gewist.

Als u de exacte matrixgrootte wilt berekenen die GetChars nodig is om de resulterende tekens op te slaan, moet de toepassing worden gebruikt GetCharCount.

Als GetChars wordt aangeroepen met flush ingesteld op false, slaat de decoder volgbytes op aan het einde van het gegevensblok in een interne buffer en gebruikt deze in de volgende decoderingsbewerking. De toepassing moet onmiddellijk een blok met gegevens aanroepen GetCharCount voordat hetzelfde blok wordt aangeroepen GetChars , zodat eventuele volgbytes uit het vorige blok worden opgenomen in de berekening.

Als uw toepassing veel segmenten van een invoerstroom wilt converteren, kunt u overwegen de Convert methode te gebruiken. GetChars genereert een uitzondering als de uitvoerbuffer niet groot genoeg is, maar Convert zo veel mogelijk ruimte opvult en de geschreven bytes en tekens retourneert, mits de uitvoermatrix ten minste twee tekens toestaat. Zie ook het Encoding.GetChars onderwerp voor meer opmerkingen.

Zie ook

Van toepassing op