UTF7Encoding.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 znaków jest większa niż maksymalna liczba, którą można zwrócić jako liczbę int.
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 kodu pokazano, jak za pomocą GetMaxCharCount metody zwracać maksymalną liczbę 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 do przechowywania wynikowych znaków, aplikacja używa polecenia GetCharCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna użyć polecenia GetMaxCharCount. Metoda GetCharCount zwykle zezwala na alokację mniejszej ilości 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 Decoder.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)
.