UTF7Encoding.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 znaków jest większa niż maksymalna liczba, którą można zwrócić jako liczbę całkowitą.

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

-I-

DecoderFallback parametr jest ustawiony na DecoderExceptionFallbackwartość .

Przykłady

Poniższy przykład kodu przedstawia sposób użycia GetMaxCharCount metody w celu zwrócenia maksymalnej liczby znaków generowanych przez dekodowanie określonej liczby bajtów.

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

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

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf7.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 program do przechowywania znaków wynikowych, aplikacja używa elementu GetCharCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna używać polecenia GetMaxCharCount. Metoda GetCharCount zwykle zezwala na alokację mniejszej ilości pamięci, podczas gdy GetMaxCharCount metoda zwykle wykonuje się szybciej.

GetMaxCharCount jest numerem najgorszej wielkości liter, w tym najgorszym przypadkiem dla aktualnie wybranego DecoderFallbackelementu . Jeśli zostanie wybrany rezerwowy 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żywaniem bardzo dużych buforów a przechwytywaniem błędów w rzadkich przypadkach przekroczenia bardziej rozsądnego buforu. Warto również rozważyć inne podejście przy użyciu metody GetCharCount lub Decoder.Convert.

GetMaxCharCountnie ma relacji z .GetBytes Jeśli aplikacja potrzebuje podobnej funkcji do użycia z usługą GetBytes, powinna używać polecenia GetMaxByteCount.

Uwaga

GetMaxCharCount(N) nie musi być tą samą wartością co N* GetMaxCharCount(1).

Dotyczy

Zobacz też