UnicodeEncoding.GetMaxByteCount(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ę bajtów generowanych przez kodowanie określonej liczby znaków.
public:
override int GetMaxByteCount(int charCount);
public override int GetMaxByteCount (int charCount);
override this.GetMaxByteCount : int -> int
Public Overrides Function GetMaxByteCount (charCount As Integer) As Integer
Parametry
- charCount
- Int32
Liczba znaków do zakodowania.
Zwraca
Maksymalna liczba bajtów generowanych przez kodowanie określonej liczby znaków.
Wyjątki
Parametr charCount
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ł powrót (aby uzyskać więcej informacji, zobacz Kodowanie znaków na platformie .NET)
-I-
EncoderFallback parametr jest ustawiony na EncoderExceptionFallbackwartość .
Przykłady
W poniższym przykładzie pokazano, jak za pomocą GetMaxByteCount metody zwracać maksymalną liczbę bajtów wymaganych do zakodowania określonej liczby znaków.
using namespace System;
using namespace System::Text;
int main()
{
UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
int charCount = 2;
int maxByteCount = Unicode->GetMaxByteCount( charCount );
Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
using System;
using System.Text;
class UnicodeEncodingExample {
public static void Main() {
UnicodeEncoding Unicode = new UnicodeEncoding();
int charCount = 2;
int maxByteCount = Unicode.GetMaxByteCount(charCount);
Console.WriteLine(
"Maximum of {0} bytes needed to encode {1} characters.",
maxByteCount,
charCount
);
}
}
Imports System.Text
Class UnicodeEncodingExample
Public Shared Sub Main()
Dim uni As New UnicodeEncoding()
Dim charCount As Integer = 2
Dim maxByteCount As Integer = uni.GetMaxByteCount(charCount)
Console.WriteLine("Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount)
End Sub
End Class
Uwagi
Aby obliczyć dokładny rozmiar tablicy wymagany przez GetBytes program do przechowywania wynikowych bajtów, aplikacja używa elementu GetByteCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna używać polecenia GetMaxByteCount. Metoda GetByteCount zwykle przydziela mniej pamięci, podczas gdy GetMaxByteCount metoda zwykle wykonuje się szybciej.
GetMaxByteCount pobiera numer najgorszej wielkości liter, w tym najgorszy przypadek dla aktualnie wybranego EncoderFallbackelementu . Jeśli zostanie wybrany rezerwowy z potencjalnie dużym ciągiem, GetMaxByteCount może zwrócić duże wartości.
W większości przypadków ta metoda pobiera 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 GetByteCount lub Encoder.Convert.
GetMaxByteCountnie ma relacji z .GetChars Jeśli aplikacja potrzebuje podobnej funkcji do użycia z usługą GetChars, powinna używać polecenia GetMaxCharCount.
Uwaga
GetMaxByteCount(N)
nie musi być tą samą wartością co N* GetMaxByteCount(1)
.