UTF8Encoding.GetMaxByteCount(Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Calcola il numero massimo di byte prodotti dalla codifica del numero specificato di caratteri.
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
Parametri
- charCount
- Int32
Numero di caratteri da codificare.
Valori restituiti
Numero massimo di byte prodotti dalla codifica del numero specificato di caratteri.
Eccezioni
charCount è minore di zero.
oppure
Il numero di byte risultante è maggiore del numero massimo che può essere restituito come numero intero.
Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)
-e-
EncoderFallback è impostato su EncoderExceptionFallback.
Esempio
Nell'esempio seguente viene utilizzato il GetMaxByteCount metodo per restituire il numero massimo di byte necessari per codificare un numero specificato di caratteri.
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
Commenti
Per calcolare la dimensione esatta della matrice richiesta da GetBytes per archiviare i byte risultanti, chiamare il GetByteCount metodo . Per calcolare la dimensione massima della matrice, chiamare il GetMaxByteCount metodo . Il GetByteCount metodo alloca in genere meno memoria, mentre il GetMaxByteCount metodo viene generalmente eseguito più velocemente.
GetMaxByteCount è un numero peggiore, incluso il caso peggiore per l'oggetto attualmente selezionato EncoderFallback. Se viene scelto un fallback con una stringa potenzialmente grande, GetMaxByteCount può restituire valori di grandi dimensioni.
Nella maggior parte dei casi, questo metodo restituisce numeri ragionevoli per stringhe di piccole dimensioni. Per stringhe di grandi dimensioni, potrebbe essere necessario scegliere tra l'uso di buffer molto grandi e l'intercettazione di errori nel raro caso in cui venga superato un buffer più ragionevole. È anche possibile prendere in considerazione un approccio diverso usando GetByteCount o Encoder.Convert. Ad esempio, il testo in inglese e molte altre lingue spesso richiede un solo byte UTF-8 per rappresentare un carattere, ma il numero restituito da GetMaxByteCount deve consentire la possibilità che la stringa venga convertita sia costituita interamente da caratteri che ognuno richiede quattro byte.
GetMaxByteCount non ha alcuna relazione con GetChars. Se l'applicazione necessita di una funzione simile da usare con GetChars, deve usare GetMaxCharCount.
Note
GetMaxByteCount(N) non è necessariamente lo stesso valore di N* GetMaxByteCount(1).