UTF8Encoding.GetMaxCharCount(Int32) Метод

Определение

Вычисляет максимальное количество символов, полученных при декодировании заданного числа байтов.

public override int GetMaxCharCount (int byteCount);

Параметры

byteCount
Int32

Число байтов для декодирования.

Возвращаемое значение

Максимальное количество символов, полученных при декодировании заданного количества байтов.

Исключения

Значение параметра byteCount меньше нуля.

-или-

Результирующее число байтов больше максимального количества, которое можно вернуть как целочисленное значение.

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру DecoderFallback задается значение DecoderExceptionFallback.

Примеры

В следующем примере метод используется GetMaxCharCount для возврата максимального числа символов, полученных при декодировании указанного числа байтов.

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
        );
    }
}

Комментарии

Чтобы вычислить точный размер массива, необходимый GetChars для хранения результирующего символа, вызовите GetCharCount метод . Чтобы вычислить максимальный размер массива, вызовите GetMaxCharCount метод . Метод GetCharCount обычно выделяет меньше памяти, в то время как GetMaxCharCount метод обычно выполняется быстрее.

GetMaxCharCount — это наихудшее число, включая наихудший вариант для выбранного DecoderFallbackв данный момент . Если выбран резервный вариант с потенциально большой строкой, GetMaxCharCount может возвращать большие значения.

В большинстве случаев этот метод возвращает разумные числа для небольших строк. Для больших строк может потребоваться выбрать между использованием очень больших буферов и перехватом ошибок в редких случаях, когда превышение более разумного буфера. Также можно рассмотреть другой подход с помощью GetCharCount или Encoder.Convert .

GetMaxCharCountне имеет отношения к GetBytes . Если приложению требуется аналогичная функция для использования с GetBytes, оно должно использовать GetMaxByteCount.

Примечание

GetMaxCharCount(N)не обязательно то же значение, что и N* GetMaxCharCount(1) .

Применяется к

Продукт Версии
.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
.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

См. также раздел