Condividi tramite


UTF7Encoding.GetMaxCharCount(Int32) Metodo

Definizione

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

public:
 override int GetMaxCharCount(int byteCount);
public override int GetMaxCharCount (int byteCount);
override this.GetMaxCharCount : int -> int
Public Overrides Function GetMaxCharCount (byteCount As Integer) As Integer

Parametri

byteCount
Int32

Numero di byte da decodificare.

Restituisce

Int32

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

Eccezioni

byteCount è minore di zero.

-oppure- Il numero di caratteri ottenuto è maggiore del numero massimo che può essere restituito come valore int.

Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET) -e- DecoderFallback è impostato su DecoderExceptionFallback.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare il GetMaxCharCount metodo per restituire il numero massimo di caratteri prodotti dalla decodifica di un numero specificato di byte.

using namespace System;
using namespace System::Text;
int main()
{
   UTF7Encoding^ utf7 = gcnew UTF7Encoding;
   int byteCount = 8;
   int maxCharCount = utf7->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        UTF7Encoding utf7 = new UTF7Encoding();
        int byteCount = 8;
        int maxCharCount = utf7.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf7.GetMaxCharCount(byteCount)
        Console.WriteLine( _
            "Maximum of {0} characters needed to decode {1} bytes.", _
            maxCharCount, _
            byteCount _
        )
    End Sub
End Class

Commenti

Per calcolare la dimensione esatta della matrice richiesta 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 consente l'allocazione di una quantità di memoria inferiore, mentre il GetMaxCharCount metodo viene in genere eseguito più velocemente.

GetMaxCharCount è un numero peggiore, incluso il peggiore dei casi per l'oggetto attualmente selezionato DecoderFallback. Se viene scelto un fallback con una stringa potenzialmente grande, GetMaxCharCount 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 GetCharCount o Decoder.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

Vedi anche