Encoder.GetByteCount Metod

Definition

När du åsidosättas i en härledd klass beräknar du antalet byte som genereras genom att koda en uppsättning tecken.

Överlagringar

Name Description
GetByteCount(ReadOnlySpan<Char>, Boolean)

När du åsidosättas i en härledd klass beräknar du antalet byte som genereras genom att koda en uppsättning tecken i intervallet "tecken". En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

GetByteCount(Char*, Int32, Boolean)

När du åsidosättas i en härledd klass beräknar du antalet byte som genereras genom att koda en uppsättning tecken med början vid den angivna teckenpekaren. En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

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

När det åsidosättas i en härledd klass beräknas antalet byte som genereras genom att koda en uppsättning tecken från den angivna teckenmatrisen. En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

Kommentarer

Den här metoden påverkar inte kodarens tillstånd.

För att beräkna den exakta matrisstorlek som GetBytes krävs för att lagra resulterande byte bör programmet använda GetByteCount.

Om GetBytes anropas med flush inställt på falselagrar kodaren avslutande tecken i slutet av datablocket i en intern buffert och använder dem i nästa kodningsåtgärd. Programmet bör anropa GetByteCount ett datablock omedelbart innan det anropas GetBytes i samma block, så att eventuella avslutande tecken från föregående block inkluderas i beräkningen.

GetByteCount(ReadOnlySpan<Char>, Boolean)

När du åsidosättas i en härledd klass beräknar du antalet byte som genereras genom att koda en uppsättning tecken i intervallet "tecken". En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

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

Parametrar

chars
ReadOnlySpan<Char>

Ett teckenintervall som ska kodas.

flush
Boolean

trueför att simulera rensning av kodarens interna tillstånd efter beräkningen. annars . false

Returer

Antalet byte som skapas genom kodning av de angivna tecknen och eventuella tecken i den interna bufferten.

Gäller för

GetByteCount(Char*, Int32, Boolean)

Viktigt!

Detta API uppfyller inte CLS.

När du åsidosättas i en härledd klass beräknar du antalet byte som genereras genom att koda en uppsättning tecken med början vid den angivna teckenpekaren. En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

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

Parametrar

chars
Char*

En pekare till det första tecknet som ska kodas.

count
Int32

Antalet tecken som ska kodas.

flush
Boolean

trueför att simulera rensning av kodarens interna tillstånd efter beräkningen. annars . false

Returer

Antalet byte som skapas genom kodning av de angivna tecknen och eventuella tecken i den interna bufferten.

Attribut

Undantag

chars är null (Nothing i Visual Basic .NET).

count är mindre än noll.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

Fallback är inställt på EncoderExceptionFallback.

Se även

Gäller för

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

När det åsidosättas i en härledd klass beräknas antalet byte som genereras genom att koda en uppsättning tecken från den angivna teckenmatrisen. En parameter anger om kodarens interna tillstånd ska rensas efter beräkningen.

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

Parametrar

chars
Char[]

Teckenmatrisen som innehåller den uppsättning tecken som ska kodas.

index
Int32

Indexet för det första tecknet som ska kodas.

count
Int32

Antalet tecken som ska kodas.

flush
Boolean

trueför att simulera rensning av kodarens interna tillstånd efter beräkningen. annars . false

Returer

Antalet byte som skapas genom kodning av de angivna tecknen och eventuella tecken i den interna bufferten.

Undantag

chars är null.

index eller count är mindre än noll.

-eller-

index och count ange inte ett giltigt intervall i chars.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

Fallback är inställt på EncoderExceptionFallback.

Exempel

I följande kodexempel visas hur du använder GetByteCount metoden för att returnera det antal byte som krävs för att koda en matris med tecken med hjälp av en 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.
'

Se även

Gäller för