UTF7Encoding.GetMaxCharCount(Int32) Метод

Определение

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

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

Параметры

byteCount
Int32

Количество байтов, которые необходимо декодировать.

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

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

Исключения

byteCount меньше нуля.

–или–

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

Произошла резервная ошибка (дополнительные сведения см. в разделе "Кодировка символов" в .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
        );
    }
}
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

Комментарии

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

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

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

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

Note

GetMaxCharCount(N) не обязательно совпадает со значением N* GetMaxCharCount(1).

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

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