UnicodeEncoding.GetMaxByteCount(Int32) Methode

Definition

Berechnet die maximale Anzahl der Bytes, die beim Codieren der angegebenen Anzahl von Zeichen erzeugt wird.Calculates the maximum number of bytes produced by encoding the specified number of characters.

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

Parameter

charCount
Int32

Die Anzahl der zu codierenden Zeichen.The number of characters to encode.

Gibt zurück

Die maximale Anzahl an Bytes, die beim Codieren der angegebenen Anzahl von Zeichen erzeugt werden.The maximum number of bytes produced by encoding the specified number of characters.

Ausnahmen

charCount ist kleiner als Null.charCount is less than zero.

- oder --or- Die daraus resultierende Byteanzahl ist größer als die maximale Anzahl, die als ganze Zahl zurückgegeben werden kann.The resulting number of bytes is greater than the maximum number that can be returned as an integer.

Es ist ein Fallback aufgetreten (eine ausführliche Erläuterung finden Sie unter Zeichencodierung in .NET Framework).A fallback occurred (see Character Encoding in the .NET Framework for fuller explanation) - und --and- FürEncoderFallback ist EncoderExceptionFallbackfestgelegt.EncoderFallback is set to EncoderExceptionFallback.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die GetMaxByteCount -Methode verwendet wird, um die maximale Anzahl von Bytes zurückzugeben, die zum Codieren einer angegebenen Anzahl von Zeichen erforderlich sind.The following example demonstrates how to use the GetMaxByteCount method to return the maximum number of bytes required to encode a specified number of characters.

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

Hinweise

Zum Berechnen der exakten Array Größe, die GetBytes von zum Speichern der resultierenden Bytes benötigt wird, GetByteCountverwendet die Anwendung.To calculate the exact array size required by GetBytes to store the resulting bytes, the application uses GetByteCount. Um die maximale Array Größe zu berechnen, sollte von der GetMaxByteCountAnwendung verwendet werden.To calculate the maximum array size, the application should use GetMaxByteCount. Die GetByteCount -Methode weist im Allgemeinen weniger Arbeitsspeicher zu GetMaxByteCount , während die-Methode im Allgemeinen schneller ausgeführt wird.The GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

GetMaxByteCountRuft die Anzahl der schlechtesten Fälle ab, einschließlich des ungünstigsten Falls für EncoderFallbackden aktuell ausgewählten.GetMaxByteCount retrieves a worst-case number, including the worst case for the currently selected EncoderFallback. Wenn ein Fall Back mit einer potenziell großen Zeichenfolge ausgewählt wird GetMaxByteCount , kann große Werte zurückgeben.If a fallback is chosen with a potentially large string, GetMaxByteCount can return large values.

In den meisten Fällen ruft diese Methode angemessene Zahlen für kleine Zeichen folgen ab.In most cases, this method retrieves reasonable numbers for small strings. Bei großen Zeichen folgen müssen Sie möglicherweise zwischen der Verwendung sehr großer Puffer und dem Abfangen von Fehlern wählen, wenn ein sinnvoller Puffer überschritten wird.For large strings, you might have to choose between using very large buffers and catching errors in the rare case that a more reasonable buffer is exceeded. Möglicherweise möchten Sie auch einen anderen Ansatz mithilfe GetByteCount von oder Encoder.Convertbetrachten.You might also want to consider a different approach using GetByteCount or Encoder.Convert.

GetMaxByteCounthat keine Beziehung zu GetChars.GetMaxByteCount has no relation to GetChars. Wenn Ihre Anwendung eine ähnliche Funktion benötigt, die mit GetCharsverwendet werden soll, GetMaxCharCountsollte Sie verwendet werden.If your application needs a similar function to use with GetChars, it should use GetMaxCharCount.

Hinweis

GetMaxByteCount(N)ist nicht notwendigerweise derselbe Wert wie N* GetMaxByteCount(1).GetMaxByteCount(N) is not necessarily the same value as N* GetMaxByteCount(1).

Gilt für:

Siehe auch