Encoder.GetByteCount Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
'