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
Число байтов для декодирования.
Возвращает
Максимальное количество символов, полученных при декодировании заданного количества байтов.
Исключения
Значение параметра byteCount меньше нуля.
-или-
Результирующее число байтов больше максимального количества, которое можно вернуть как целочисленное значение.
Произошел откат (см. сведения о кодировке символов в .NET)
- и -
Параметру DecoderFallback задается значение DecoderExceptionFallback.
Примеры
В следующем примере метод используется GetMaxCharCount для возврата максимального числа символов, полученных при декодировании указанного числа байтов.
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) .