Encoder.GetByteCount Methode
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.
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.
'