UTF7Encoding.GetMaxCharCount(Int32) Метод

Определение

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

public override int GetMaxCharCount (int byteCount);

Параметры

byteCount
Int32

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

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

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

Исключения

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

-или-

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

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

- и -

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

Примеры

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

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

Комментарии

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

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

В большинстве случаев этот метод возвращает разумные числа для небольших строк. Для больших строк может потребоваться выбрать между использованием очень больших буферов и перехватом ошибок в редких случаях превышения более разумного буфера. Также можно рассмотреть другой подход с помощью GetCharCount или Decoder.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.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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