Поделиться через


UnicodeEncoding.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 меньше нуля.

-или-

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

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

- и -

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

Примеры

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

using namespace System;
using namespace System::Text;
int main()
{
   UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
   int byteCount = 8;
   int maxCharCount = Unicode->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

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

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim uni As New UnicodeEncoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = uni.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 или Convert .

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

Примечание

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

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

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