UTF7Encoding.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()
{
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
int byteCount = 8;
int maxCharCount = utf7->GetMaxCharCount( byteCount );
Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
UTF7Encoding utf7 = new UTF7Encoding();
int byteCount = 8;
int maxCharCount = utf7.GetMaxCharCount(byteCount);
Console.WriteLine(
"Maximum of {0} characters needed to decode {1} bytes.",
maxCharCount,
byteCount
);
}
}
Imports System.Text
Class UTF7EncodingExample
Public Shared Sub Main()
Dim utf7 As New UTF7Encoding()
Dim byteCount As Integer = 8
Dim maxCharCount As Integer = utf7.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 или Decoder.Convert .
GetMaxCharCountне имеет отношения к GetBytes . Если приложению требуется аналогичная функция для использования GetBytes, она должна использовать GetMaxByteCount.
Примечание
GetMaxCharCount(N)
не обязательно то же значение, что и N* GetMaxCharCount(1)
.