UTF8Encoding.GetMaxCharCount(Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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)
.