UTF7Encoding.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 int.

Es ist ein Fallback aufgetreten (weitere Informationen finden Sie unter Zeichencodierung in .NET).A fallback occurred (for more information, see Character Encoding in .NET) - und --and- Für EncoderFallback ist EncoderExceptionFallback festgelegt.EncoderFallback is set to EncoderExceptionFallback.

Beispiele

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

using System;
using System.Text;

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

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf7.GetMaxByteCount(charCount)
        Console.WriteLine( _
            "Maximum of {0} bytes needed to encode {1} characters.", _
            maxByteCount, _
            charCount _
        )
    End Sub
End Class

Hinweise

Um die genaue Array Größe zu berechnen, die GetBytes zum Speichern der resultierenden Bytes benötigt, verwendet die Anwendung GetByteCount.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 die Anwendung GetMaxByteCountverwenden.To calculate the maximum array size, the application should use GetMaxByteCount. Die GetByteCount-Methode ermöglicht im Allgemeinen die Zuordnung von weniger Arbeitsspeicher, während die GetMaxByteCount-Methode im Allgemeinen schneller ausgeführt wird.The GetByteCount method generally allows allocation of less memory, while the GetMaxByteCount method generally executes faster.

GetMaxByteCount ist eine Zahl mit dem ungünstigsten Fall, einschließlich des ungünstigsten Falls für den aktuell ausgewählten EncoderFallback.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, können GetMaxByteCount 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 mit GetByteCount oder Encoder.Convertin Erwägung gezogen.You might also want to consider a different approach using GetByteCount or Encoder.Convert. UTF-7 ist zwar sehr effizient bei der Codierung von ASCII-Daten, ein Byte pro Zeichen, ist aber für andere Daten äußerst ineffizient.While UTF-7 is very efficient at encoding ASCII data, one byte per character, it is extremely inefficient for other data. Wie bereits erwähnt, wird GetMaxByteCount mit einem ungünstigsten Fall behandelt.As remarked above, GetMaxByteCount deals with a worst case. Wenn die zu codierenden Daten größtenteils ASCII-Daten sind, und insbesondere, wenn die ASCII-Zeichen in einem Cluster vereint sind, ist UTF-7 erheblich effizienter als die von dieser Methode zurückgegebene Zahl.If the data to be encoded is largely ASCII, and especially if the ASCII characters cluster together, UTF-7 is significantly more efficient than the number returned by this method suggests.

GetMaxByteCount hat keine Beziehung zu GetChars.GetMaxByteCount has no relation to GetChars. Wenn Ihre Anwendung eine ähnliche Funktion benötigt, um mit GetCharszu verwenden, sollte GetMaxCharCountverwendet 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