UTF8Encoding.GetMaxByteCount(Int32) Methode

Definitie

Berekent het maximum aantal bytes dat wordt geproduceerd door het opgegeven aantal tekens te coderen.

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

Parameters

charCount
Int32

Het aantal tekens dat moet worden gecodeerd.

Retouren

Het maximum aantal bytes dat wordt geproduceerd door het opgegeven aantal tekens te coderen.

Uitzonderingen

charCount is kleiner dan nul.

– of –

Het resulterende aantal bytes is groter dan het maximumaantal dat als geheel getal kan worden geretourneerd.

Er is een terugval opgetreden (zie Character Encoding in .NET)

en

EncoderFallback is ingesteld op EncoderExceptionFallback.

Voorbeelden

In het volgende voorbeeld wordt de GetMaxByteCount methode gebruikt om het maximum aantal bytes te retourneren dat is vereist om een opgegeven aantal tekens te coderen.

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

Opmerkingen

Als u de exacte matrixgrootte wilt berekenen die is vereist voor GetBytes het opslaan van de resulterende bytes, roept u de GetByteCount methode aan. Als u de maximale matrixgrootte wilt berekenen, roept u de GetMaxByteCount methode aan. De GetByteCount methode wijst doorgaans minder geheugen toe, terwijl de GetMaxByteCount methode over het algemeen sneller wordt uitgevoerd.

GetMaxByteCount is een slechtst getal, inclusief het slechtste geval voor de geselecteerde EncoderFallback. Als een terugval is gekozen met een mogelijk grote tekenreeks, GetMaxByteCount kunnen grote waarden worden geretourneerd.

In de meeste gevallen retourneert deze methode redelijke getallen voor kleine tekenreeksen. Voor grote tekenreeksen moet u mogelijk kiezen tussen het gebruik van zeer grote buffers en het ondervangen van fouten in het zeldzame geval dat een meer redelijke buffer wordt overschreden. U kunt ook een andere benadering overwegen met behulp van GetByteCount of Encoder.Convert. Tekst in het Engels en veel andere talen heeft bijvoorbeeld vaak slechts één UTF-8-byte nodig om een teken te vertegenwoordigen, maar het getal dat wordt geretourneerd, GetMaxByteCount moet de mogelijkheid bieden dat de tekenreeks wordt geconverteerd, volledig bestaat uit tekens waarvoor elk vier bytes nodig is.

GetMaxByteCount heeft geen relatie tot GetChars. Als uw toepassing een vergelijkbare functie nodig heeft om mee GetCharste gebruiken, moet deze worden gebruikt GetMaxCharCount.

Note

GetMaxByteCount(N) is niet noodzakelijkerwijs dezelfde waarde als N* GetMaxByteCount(1).

Van toepassing op

Zie ook