UTF7Encoding.GetMaxByteCount(Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 een int kan worden geretourneerd.
Er is een terugval opgetreden (zie Character Encoding in .NET)
en
EncoderFallback is ingesteld op EncoderExceptionFallback.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u 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 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
Opmerkingen
Voor het berekenen van de exacte matrixgrootte die is vereist voor GetBytes het opslaan van de resulterende bytes, gebruikt GetByteCountde toepassing . Als u de maximale matrixgrootte wilt berekenen, moet de toepassing gebruikmaken van GetMaxByteCount. Met de GetByteCount methode kan over het algemeen minder geheugen worden toegewezen, terwijl de GetMaxByteCount methode doorgaans 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. Hoewel UTF-7 zeer efficiënt is bij het coderen van ASCII-gegevens, één byte per teken, is het zeer inefficiënt voor andere gegevens. Zoals hierboven is opgemerkt, GetMaxByteCount gaat het om een ergste zaak. Als de gegevens die moeten worden gecodeerd grotendeels ASCII zijn, en vooral als het ASCII-tekenscluster samen is, is UTF-7 aanzienlijk efficiënter dan het aantal dat door deze methode wordt geretourneerd.
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).