UTF8Encoding.GetMaxCharCount(Int32) Método

Definição

Calcula o número máximo de caracteres produzidos ao descodificar o número especificado de bytes.

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

Parâmetros

byteCount
Int32

O número de bytes a descodificar.

Devoluções

O número máximo de caracteres produzidos pela decodificação do número especificado de bytes.

Exceções

byteCount é inferior a zero.

-ou-

O número resultante de bytes é maior do que o número máximo que pode ser devolvido como inteiro.

Ocorreu um recurso de recurso (para mais informações, veja Codificação de Caracteres em .NET)

- e -

DecoderFallback está definido como DecoderExceptionFallback.

Exemplos

O exemplo seguinte utiliza o GetMaxCharCount método para devolver o número máximo de caracteres produzidos pela decodificação de um determinado número de bytes.

using System;
using System.Text;

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

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

Observações

Para calcular o tamanho exato do array necessário GetChars para armazenar os caracteres resultantes, chama-se o GetCharCount método. Para calcular o tamanho máximo do array, chama-se o GetMaxCharCount método. O GetCharCount método geralmente aloca menos memória, enquanto o GetMaxCharCount método geralmente executa mais rapidamente.

GetMaxCharCount é um número do pior caso, incluindo o pior caso para o atualmente selecionado DecoderFallback. Se for escolhido um plano B com uma cadeia potencialmente grande, GetMaxCharCount pode devolver valores elevados.

Na maioria dos casos, este método devolve números razoáveis para cadeias pequenas. Para cadeias grandes, pode ter de escolher entre usar buffers muito grandes e apanhar erros no raro caso de ultrapassar um buffer mais razoável. Também pode querer considerar uma abordagem diferente usando GetCharCount ou Encoder.Convert.

GetMaxCharCount não tem relação com GetBytes. Se a sua aplicação precisar de uma função semelhante para usar , GetBytesdeverá usar GetMaxByteCount.

Note

GetMaxCharCount(N) não é necessariamente o mesmo valor que N* GetMaxCharCount(1).

Aplica-se a

Ver também