UnicodeEncoding.GetMaxCharCount(Int32) Метод

Определение

Вычисляет максимальное количество символов, полученных при декодировании заданного числа байтов.Calculates the maximum number of characters produced by decoding the specified number of bytes.

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

Число байтов для декодирования.The number of bytes to decode.

Возвраты

Максимальное количество символов, полученных при декодировании заданного количества байтов.The maximum number of characters produced by decoding the specified number of bytes.

Исключения

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

- или --or- Результирующее число байтов больше максимального количества, которое можно вернуть как целочисленное значение.The resulting number of bytes is greater than the maximum number that can be returned as an integer.

Произошла отработка отказа (см. полное объяснение в статье Кодировка символов в .NET Framework)A fallback occurred (see Character Encoding in the .NET Framework for fuller explanation) - и --and- Параметру DecoderFallback задается значение DecoderExceptionFallback.DecoderFallback is set to DecoderExceptionFallback.

Примеры

В следующем примере показано, как использовать GetMaxCharCount метод для возврата максимального числа символов, полученных при декодировании указанного числа байтов.The following example demonstrates how to use the GetMaxCharCount method to return the maximum number of characters produced by decoding a specified number of bytes.

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.To calculate the exact array size required by GetChars to store the resulting characters, the application uses GetCharCount. Чтобы вычислить максимальный размер массива, приложение должно использовать GetMaxCharCount.To calculate the maximum array size, the application should use GetMaxCharCount. Метод обычно выделяет меньше памяти, в GetMaxCharCount то время как метод обычно выполняется быстрее. GetCharCountThe GetCharCount method generally allocates less memory, while the GetMaxCharCount method generally executes faster.

GetMaxCharCountИзвлекает значение наихудшего регистра, включая наихудший случай для выбранного DecoderFallbackв данный момент.GetMaxCharCount retrieves a worst-case number, including the worst case for the currently selected DecoderFallback. Если резервный вариант выбирается с потенциально большой строкой GetMaxCharCount , получает большие значения.If a fallback is chosen with a potentially large string, GetMaxCharCount retrieves large values.

В большинстве случаев этот метод извлекает разумные числа для небольших строк.In most cases, this method retrieves reasonable numbers for small strings. В случае больших строк может потребоваться выбрать использование очень больших буферов и перехват ошибок в редких случаях, когда превышено разумный размер буфера.For large strings, you might have to choose between using very large buffers and catching errors in the rare case that a more reasonable buffer is exceeded. Также можно рассмотреть другой подход с помощью GetCharCount или. ConvertYou might also want to consider a different approach using GetCharCount or Convert.

GetMaxCharCountне имеет отношения к GetBytes.GetMaxCharCount has no relation to GetBytes. Если приложению требуется аналогичная функция для использования с GetBytes, следует использовать. GetMaxByteCountIf your application needs a similar function to use with GetBytes, it should use GetMaxByteCount.

Примечание

GetMaxCharCount(N)не обязательно то же значение, что N* GetMaxCharCount(1)и.GetMaxCharCount(N) is not necessarily the same value as N* GetMaxCharCount(1).

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

Дополнительно