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 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.
Note
GetMaxCharCount(N) не обязательно совпадает со значением N* GetMaxCharCount(1).