Decoder Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Converteert een reeks gecodeerde bytes naar een reeks tekens.
public ref class Decoder abstract
public abstract class Decoder
[System.Serializable]
public abstract class Decoder
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Decoder
type Decoder = class
[<System.Serializable>]
type Decoder = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Decoder = class
Public MustInherit Class Decoder
- Overname
-
Decoder
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u het gebruik van een Decoder om twee verschillende bytematrices te converteren naar een tekenmatrix. Een van de bytes van het teken omvat de matrices. Dit is vergelijkbaar met wat een StreamReader object intern doet bij het lezen van een stream.
using System;
using System.Text;
public class dec
{
public static void Main()
{
// These bytes in UTF-8 correspond to 3 different Unicode
// characters: space (U+0020), # (U+0023), and the biohazard
// symbol (U+2623). Note the biohazard symbol requires 3 bytes
// in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
// multiple calls to GetChars, handling the case when one char
// is in multiple byte arrays.
byte[] bytes1 = { 0x20, 0x23, 0xe2 };
byte[] bytes2 = { 0x98, 0xa3 };
char[] chars = new char[3];
Decoder d = Encoding.UTF8.GetDecoder();
int charLen = d.GetChars(bytes1, 0, bytes1.Length, chars, 0);
// The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen);
foreach(char c in chars)
Console.Write("U+{0:X4} ", (ushort)c);
}
}
Imports System.Text
Public Class dec
Public Shared Sub Main()
' These bytes in UTF-8 correspond to 3 different Unicode
' characters: space (U+0020), # (U+0023), and the biohazard
' symbol (U+2623). Note the biohazard symbol requires 3 bytes
' in UTF-8 (hexadecimal e2, 98, a3). Decoders store state across
' multiple calls to GetChars, handling the case when one char
' is in multiple byte arrays.
Dim bytes1 As Byte() = {&H20, &H23, &HE2}
Dim bytes2 As Byte() = {&H98, &HA3}
Dim chars(3) As Char
Dim d As Decoder = Encoding.UTF8.GetDecoder()
Dim charLen As Integer = d.GetChars(bytes1, 0, bytes1.Length, chars, 0)
' The value of charLen should be 2 now.
charLen += d.GetChars(bytes2, 0, bytes2.Length, chars, charLen)
Dim c As Char
For Each c In chars
Console.Write("U+{0:X4} ", Convert.ToUInt16(c) )
Next c
End Sub
End Class
Opmerkingen
Als u een exemplaar van een implementatie van de Decoder klasse wilt verkrijgen, roept u de GetDecoder methode van een Encoding implementatie aan.
De GetCharCount methode bepaalt hoeveel tekens resulteren in het decoderen van een reeks bytes en de GetChars methode voert de daadwerkelijke decodering uit. Er zijn verschillende versies van beide methoden beschikbaar in de Decoder klasse. Zie Encoding.GetChars voor meer informatie. Een Decoder object onderhoudt statusinformatie tussen opeenvolgende aanroepen of GetCharsConvert methoden, zodat bytereeksen die blokken omvatten, correct kunnen decoderen. Het Decoder behoudt ook volgbytes aan het einde van gegevensblokken en gebruikt de volgbytes in de volgende decoderingsbewerking.
GetDecoder Daarom, en GetEncoder zijn nuttig voor netwerkoverdracht en bestandsbewerkingen omdat deze bewerkingen vaak omgaan met blokken gegevens in plaats van een volledige gegevensstroom.
Note
Wanneer de toepassing wordt uitgevoerd met een gegevensstroom, moet u ervoor zorgen dat de statusinformatie wordt leeggemaakt door de flush parameter true in te stellen in de juiste methode-aanroep. Als er een uitzondering optreedt of als de toepassing overschakelt naar stromen, moet Reset deze de interne status van het Decoder object wissen.
Notities voor uitvoerders
Wanneer uw toepassing wordt overgenomen van deze klasse, moet deze alle leden overschrijven.
Constructors
| Name | Description |
|---|---|
| Decoder() |
Initialiseert een nieuw exemplaar van de Decoder klasse. |
Eigenschappen
| Name | Description |
|---|---|
| Fallback |
Hiermee wordt een DecoderFallback object opgehaald of ingesteld voor het huidige Decoder object. |
| FallbackBuffer |
Hiermee haalt u het DecoderFallbackBuffer object op dat is gekoppeld aan het huidige Decoder object. |
Methoden
| Name | Description |
|---|---|
| Convert(Byte[], Int32, Int32, Char[], Int32, Int32, Boolean, Int32, Int32, Boolean) |
Converteert een matrix met gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een tekenmatrix. |
| Convert(Byte*, Int32, Char*, Int32, Boolean, Int32, Int32, Boolean) |
Converteert een buffer met gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een andere buffer. |
| Convert(ReadOnlySpan<Byte>, Span<Char>, Boolean, Int32, Int32, Boolean) |
Converteert een reeks gecodeerde bytes naar UTF-16 gecodeerde tekens en slaat het resultaat op in een andere spanbuffer. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetCharCount(Byte[], Int32, Int32, Boolean) |
Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door het decoderen van een reeks bytes van de opgegeven bytematrix. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist. |
| GetCharCount(Byte[], Int32, Int32) |
Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door het decoderen van een reeks bytes van de opgegeven bytematrix. |
| GetCharCount(Byte*, Int32, Boolean) |
Wanneer deze worden overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door een reeks bytes te decoderen die beginnen bij de opgegeven byteaanwijzer. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist. |
| GetCharCount(ReadOnlySpan<Byte>, Boolean) |
Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal tekens dat wordt geproduceerd door de reeks bytes in de periode te decoderen. Een parameter geeft aan of de interne status van de decoder na de berekening moet worden gewist. |
| 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(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, 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(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. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| Reset() |
Wanneer de decoder wordt overschreven in een afgeleide klasse, stelt u de decoder weer in de beginstatus. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |