Udostępnij za pośrednictwem


Encoder.GetByteCount Metoda

Definicja

Podczas zastępowania w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków.

Przeciążenia

GetByteCount(ReadOnlySpan<Char>, Boolean)

Po przesłonięciu w klasie pochodnej oblicza liczbę bajtów wygenerowanych przez kodowanie zestawu znaków w zakresie znaków . Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

GetByteCount(Char*, Int32, Boolean)

Podczas zastępowania w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków rozpoczynających się od określonego wskaźnika znaków. Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

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

Podczas zastępowania w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków z określonej tablicy znaków. Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

Uwagi

Ta metoda nie ma wpływu na stan kodera.

Aby obliczyć dokładny rozmiar tablicy, który GetBytes wymaga przechowywania wynikowych bajtów, aplikacja powinna używać polecenia GetByteCount.

Jeśli GetBytes jest wywoływana z ustawioną wartością flushfalse, koder przechowuje końcowe znaki na końcu bloku danych w buforze wewnętrznym i używa ich w następnej operacji kodowania. Aplikacja powinna wywołać GetByteCount blok danych bezpośrednio przed wywołaniem GetBytes tego samego bloku, aby wszystkie końcowe znaki z poprzedniego bloku były uwzględniane w obliczeniach.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Źródło:
Encoder.cs
Źródło:
Encoder.cs
Źródło:
Encoder.cs

Po przesłonięciu w klasie pochodnej oblicza liczbę bajtów wygenerowanych przez kodowanie zestawu znaków w zakresie znaków . Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

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

Parametry

chars
ReadOnlySpan<Char>

Zakres znaków do kodowania.

flush
Boolean

true zasymulować czyszczenie wewnętrznego stanu kodera po obliczeniu; w przeciwnym razie , false.

Zwraca

Liczba bajtów generowanych przez kodowanie określonych znaków i wszystkich znaków w buforze wewnętrznym.

Dotyczy

GetByteCount(Char*, Int32, Boolean)

Źródło:
Encoder.cs
Źródło:
Encoder.cs
Źródło:
Encoder.cs

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Podczas zastępowania w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków rozpoczynających się od określonego wskaźnika znaków. Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

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)]
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)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<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

Parametry

chars
Char*

Wskaźnik do pierwszego znaku w celu zakodowania.

count
Int32

Liczba znaków do zakodowania.

flush
Boolean

true zasymulować czyszczenie wewnętrznego stanu kodera po obliczeniu; w przeciwnym razie , false.

Zwraca

Liczba bajtów generowanych przez kodowanie określonych znaków i wszystkich znaków w buforze wewnętrznym.

Atrybuty

Wyjątki

chars is null (Nothing w visual basic .NET).

Parametr count ma wartość niższą niż zero.

Wystąpił powrót (aby uzyskać więcej informacji, zobacz Kodowanie znaków na platformie .NET)

-I-

Fallback parametr jest ustawiony na EncoderExceptionFallbackwartość .

Zobacz też

Dotyczy

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

Źródło:
Encoder.cs
Źródło:
Encoder.cs
Źródło:
Encoder.cs

Podczas zastępowania w klasie pochodnej oblicza liczbę bajtów generowanych przez kodowanie zestawu znaków z określonej tablicy znaków. Parametr wskazuje, czy wyczyścić stan wewnętrzny kodera po obliczeniu.

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

Parametry

chars
Char[]

Tablica znaków zawierająca zestaw znaków do kodowania.

index
Int32

Indeks pierwszego znaku do zakodowania.

count
Int32

Liczba znaków do zakodowania.

flush
Boolean

true zasymulować czyszczenie wewnętrznego stanu kodera po obliczeniu; w przeciwnym razie , false.

Zwraca

Liczba bajtów generowanych przez kodowanie określonych znaków i wszystkich znaków w buforze wewnętrznym.

Wyjątki

chars to null.

index wartość lub count jest mniejsza niż zero.

-lub-

index i count nie oznaczają prawidłowego zakresu w elemecie chars.

Wystąpił powrót (aby uzyskać więcej informacji, zobacz Kodowanie znaków na platformie .NET)

-I-

Fallback parametr jest ustawiony na EncoderExceptionFallbackwartość .

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą GetByteCount metody zwrócić liczbę bajtów wymaganych do zakodowania tablicy znaków przy użyciu unicode Encoder.

using namespace System;
using namespace System::Text;
int main()
{
   
   // Unicode characters.
   
   // Pi
   // Sigma
   array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
   Encoder^ uniEncoder = Encoding::Unicode->GetEncoder();
   int byteCount = uniEncoder->GetByteCount( chars, 0, chars->Length, true );
   Console::WriteLine( "{0} bytes needed to encode characters.", byteCount );
}

/* This code example produces the following output. 

8 bytes needed to encode characters.

*/
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.
'

Zobacz też

Dotyczy