UTF8Encoding.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 complete explanation) - und --and- Für EncoderFallback ist EncoderExceptionFallback festgelegt.EncoderFallback is set to EncoderExceptionFallback.

Beispiele

Im folgenden Beispiel wird die GetMaxByteCount -Methode verwendet, um die maximale Anzahl von Bytes zurückzugeben, die erforderlich sind, um eine angegebene Anzahl von Zeichen zu codieren.The following example uses 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()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int charCount = 2;
   int maxByteCount = utf8->GetMaxByteCount( charCount );
   Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int charCount = 2;
        int maxByteCount = utf8.GetMaxByteCount(charCount);
        Console.WriteLine(
            "Maximum of {0} bytes needed to encode {1} characters.",
            maxByteCount,
            charCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf8.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, GetByteCount wird die-Methode aufgerufen.To calculate the exact array size required by GetBytes to store the resulting bytes, you call the GetByteCount method. Um die maximale Array Größe zu berechnen, wird die GetMaxByteCount -Methode aufgerufen.To calculate the maximum array size, you call the GetMaxByteCount method. 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.

GetMaxByteCountist eine Zahl mit dem ungünstigsten Fall, einschließlich des ungünstigsten EncoderFallbackFalls für den aktuell ausgewählten.GetMaxByteCount is 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 gibt diese Methode für kleine Zeichen folgen angemessene Zahlen zurück.In most cases, this method returns 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. Beispielsweise benötigt Text in englischer Sprache und vielen anderen Sprachen oft nur ein UTF-8-Byte, um ein Zeichen darzustellen, aber die von GetMaxByteCount zurückgegebene Zahl muss die Möglichkeit haben, dass die zu konvertierende Zeichenfolge vollständig aus Zeichen besteht, die jeweils erfordert vier Bytes.For example, text in English and many other languages often needs only one UTF-8 byte to represent a character, but the number returned by GetMaxByteCount has to allow for the possibility that the string to be converted will consist entirely of characters that each require four bytes.

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