UnicodeEncoding.GetMaxCharCount(Int32) Metodo

Definizione

Calcola il numero massimo di caratteri prodotti dalla decodifica del numero di byte specificato.

public override int GetMaxCharCount(int byteCount);

Parametri

byteCount
Int32

Numero di byte da decodificare.

Restituisce

Numero massimo di caratteri prodotti dalla decodifica del numero di byte specificato.

Eccezioni

byteCount è minore di zero.

-oppure-

Il numero di byte ottenuto è maggiore del numero massimo che può essere restituito come valore integer.

Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)

-e-

DecoderFallback è impostato su DecoderExceptionFallback.

Esempio

Nell'esempio seguente viene illustrato come usare il metodo per restituire il GetMaxCharCount numero massimo di caratteri generati decodificando un numero specificato di byte.

using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        UnicodeEncoding Unicode = new UnicodeEncoding();
        int byteCount = 8;
        int maxCharCount = Unicode.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}

Commenti

Per calcolare le dimensioni esatte della matrice richieste da GetChars per archiviare i caratteri risultanti, l'applicazione usa GetCharCount. Per calcolare le dimensioni massime della matrice, l'applicazione deve usare GetMaxCharCount. Il GetCharCount metodo in genere alloca meno memoria, mentre il GetMaxCharCount metodo esegue in genere più velocemente.

GetMaxCharCountRecupera un numero di caso peggiore, incluso il caso peggiore per l'oggetto attualmente selezionato DecoderFallback . Se un fallback viene scelto con una stringa potenzialmente grande, GetMaxCharCount Recupera i valori di grandi dimensioni.

Nella maggior parte dei casi, questo metodo recupera numeri ragionevoli per le stringhe di piccole dimensioni. Per stringhe di grandi dimensioni, potrebbe essere necessario scegliere tra l'uso di buffer molto grandi e l'intercettamento degli errori nel raro caso in cui venga superato un buffer più ragionevole. È anche possibile prendere in considerazione un approccio diverso usando GetCharCount o Convert .

GetMaxCharCountnon ha alcuna relazione con GetBytes . Se l'applicazione necessita di una funzione simile da usare con GetBytes, deve usare GetMaxByteCount.

Nota

GetMaxCharCount(N)non è necessariamente lo stesso valore di N* GetMaxCharCount(1) .

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Vedi anche