UTF8Encoding.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

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

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

Int32

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

Исключения

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

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

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

Примеры

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

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int byteCount = 8;
   int maxCharCount = utf8->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
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

Комментарии

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

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

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

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

Примечание

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

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

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