Udostępnij za pośrednictwem


UTF8Encoding.GetMaxCharCount(Int32) Metoda

Definicja

Oblicza maksymalną liczbę znaków generowanych przez dekodowanie określonej liczby bajtów.

public:
 override int GetMaxCharCount(int byteCount);
public override int GetMaxCharCount (int byteCount);
override this.GetMaxCharCount : int -> int
Public Overrides Function GetMaxCharCount (byteCount As Integer) As Integer

Parametry

byteCount
Int32

Liczba bajtów do dekodowania.

Zwraca

Maksymalna liczba znaków generowanych przez dekodowanie określonej liczby bajtów.

Wyjątki

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

-lub-

Wynikowa liczba bajtów jest większa niż maksymalna liczba, którą można zwrócić jako liczbę całkowitą.

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

-I-

DecoderFallback jest ustawiona na DecoderExceptionFallbackwartość .

Przykłady

W poniższym przykładzie użyto metody , GetMaxCharCount aby zwrócić maksymalną liczbę znaków generowanych przez dekodowanie określonej liczby bajtów.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int byteCount = 8;
   int maxCharCount = utf8->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int byteCount = 8;
        int maxCharCount = utf8.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf8.GetMaxCharCount(byteCount)
        Console.WriteLine( _
            "Maximum of {0} characters needed to decode {1} bytes.", _
            maxCharCount, _
            byteCount _
        )
    End Sub
End Class

Uwagi

Aby obliczyć dokładny rozmiar tablicy wymagany przez GetChars do przechowywania wynikowych znaków, należy wywołać metodę GetCharCount . Aby obliczyć maksymalny rozmiar tablicy, należy wywołać metodę GetMaxCharCount . Metoda GetCharCount zazwyczaj przydziela mniej pamięci, podczas gdy GetMaxCharCount metoda zwykle wykonuje się szybciej.

GetMaxCharCount jest najgorszym numerem, w tym najgorszym przypadkiem dla aktualnie wybranego DecoderFallbackelementu . Jeśli opcja rezerwowa zostanie wybrana z potencjalnie dużym ciągiem, GetMaxCharCount może zwrócić duże wartości.

W większości przypadków ta metoda zwraca rozsądne liczby dla małych ciągów. W przypadku dużych ciągów może być konieczne wybranie między użyciem bardzo dużych buforów a błędami przechwytywania w rzadkich przypadkach przekroczenia bardziej rozsądnego buforu. Warto również rozważyć inne podejście przy użyciu metody GetCharCount lub Encoder.Convert.

GetMaxCharCount nie ma relacji z GetBytes. Jeśli aplikacja potrzebuje podobnej funkcji do użycia z GetBytesprogramem , powinna użyć polecenia GetMaxByteCount.

Uwaga

GetMaxCharCount(N) niekoniecznie jest taką samą wartością jak N* GetMaxCharCount(1).

Dotyczy

Zobacz też