Encoder.GetByteCount Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens te coderen.

Overloads

Name Description
GetByteCount(ReadOnlySpan<Char>, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens te coderen in het bereik 'tekens'. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

GetByteCount(Char*, Int32, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens te coderen die beginnen bij de opgegeven tekenwijzer. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

GetByteCount(Char[], Int32, Int32, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens van de opgegeven tekenmatrix te coderen. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

Opmerkingen

Deze methode heeft geen invloed op de status van de encoder.

Als u de exacte matrixgrootte wilt berekenen die GetBytes nodig is om de resulterende bytes op te slaan, moet de toepassing worden gebruikt GetByteCount.

Als GetBytes deze wordt aangeroepen met flush ingesteld op false, slaat de encoder volgtekens op aan het einde van het gegevensblok in een interne buffer en gebruikt deze in de volgende coderingsbewerking. De toepassing moet onmiddellijk een blok met gegevens aanroepen GetByteCount voordat u hetzelfde blok aanroept GetBytes , zodat eventuele volgtekens uit het vorige blok worden opgenomen in de berekening.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens te coderen in het bereik 'tekens'. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

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

Parameters

chars
ReadOnlySpan<Char>

Een tekenspanne om te coderen.

flush
Boolean

true om na de berekening de interne status van de encoder te simuleren; anders, false.

Retouren

Het aantal bytes dat wordt geproduceerd door de opgegeven tekens en alle tekens in de interne buffer te coderen.

Van toepassing op

GetByteCount(Char*, Int32, Boolean)

Belangrijk

Deze API is niet CLS-conform.

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens te coderen die beginnen bij de opgegeven tekenwijzer. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

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

Parameters

chars
Char*

Een aanwijzer naar het eerste teken om te coderen.

count
Int32

Het aantal tekens dat moet worden gecodeerd.

flush
Boolean

true om na de berekening de interne status van de encoder te simuleren; anders, false.

Retouren

Het aantal bytes dat wordt geproduceerd door de opgegeven tekens en alle tekens in de interne buffer te coderen.

Kenmerken

Uitzonderingen

chars is null (Nothing in Visual Basic .NET).

count is kleiner dan nul.

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

en

Fallback is ingesteld op EncoderExceptionFallback.

Zie ook

Van toepassing op

GetByteCount(Char[], Int32, Int32, Boolean)

Wanneer deze wordt overschreven in een afgeleide klasse, berekent u het aantal bytes dat wordt geproduceerd door een set tekens van de opgegeven tekenmatrix te coderen. Een parameter geeft aan of de interne status van de encoder na de berekening moet worden gewist.

public:
 abstract int GetByteCount(cli::array <char> ^ chars, int index, int count, bool flush);
public abstract int GetByteCount(char[] chars, int index, int count, bool flush);
abstract member GetByteCount : char[] * int * int * bool -> int
Public MustOverride Function GetByteCount (chars As Char(), index As Integer, count As Integer, flush As Boolean) As Integer

Parameters

chars
Char[]

De tekenmatrix die de set tekens bevat die moeten worden gecodeerd.

index
Int32

De index van het eerste teken om te coderen.

count
Int32

Het aantal tekens dat moet worden gecodeerd.

flush
Boolean

true om na de berekening de interne status van de encoder te simuleren; anders, false.

Retouren

Het aantal bytes dat wordt geproduceerd door de opgegeven tekens en alle tekens in de interne buffer te coderen.

Uitzonderingen

chars is null.

index of count kleiner is dan nul.

– of –

index en count geef geen geldig bereik aan in chars.

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

en

Fallback is ingesteld op EncoderExceptionFallback.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de GetByteCount methode gebruikt om het aantal bytes te retourneren dat is vereist voor het coderen van een matrix met tekens met behulp van een Unicode Encoder.

using System;
using System.Text;

class EncoderExample {
    public static void Main() {
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };

        Encoder uniEncoder = Encoding.Unicode.GetEncoder();
        int byteCount = uniEncoder.GetByteCount(chars, 0, chars.Length, true);
        Console.WriteLine(
            "{0} bytes needed to encode characters.", byteCount
        );
    }
}

/* This example produces the following output.

8 bytes needed to encode characters.

*/
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class EncoderExample
    
    Public Shared Sub Main()
        ' Unicode characters.
        ' ChrW(35)  = #
        ' ChrW(37)  = %
        ' ChrW(928) = Pi
        ' ChrW(931) = Sigma
        Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
        
        Dim uniEncoder As Encoder = Encoding.Unicode.GetEncoder()
        Dim byteCount As Integer = _
            uniEncoder.GetByteCount(chars, 0, chars.Length, True)
        Console.WriteLine("{0} bytes needed to encode characters.", byteCount)
    End Sub
End Class
'
'This example produces the following output.
'
'8 bytes needed to encode characters.
'

Zie ook

Van toepassing op