UnicodeEncoding.GetCharCount Метод

Определение

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

Перегрузки

GetCharCount(Byte*, Int32)

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

GetCharCount(Byte[], Int32, Int32)

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

GetCharCount(Byte*, Int32)

Важно!

Этот API несовместим с CLS.

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

public:
 override int GetCharCount(System::Byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public override int GetCharCount (byte* bytes, int count);
override this.GetCharCount : nativeptr<byte> * int -> int

Параметры

bytes
Byte*

Указатель на первый декодируемый байт.A pointer to the first byte to decode.

count
Int32

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

Возвраты

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

Атрибуты

Исключения

bytes имеет значение null (Nothing).bytes is null (Nothing).

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

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

Обнаружение ошибок включено, и параметр bytes содержит недопустимую последовательность байтов.Error detection is enabled, and bytes contains an invalid sequence of bytes.

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

Комментарии

Чтобы вычислить точный размер массива GetChars , который требуется для хранения результирующих символов, приложение GetCharCountиспользует.To calculate the exact array size that GetChars requires 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.

При обнаружении ошибок недействительная последовательность приводит к тому, что ArgumentExceptionэтот метод выдает исключение.With error detection, an invalid sequence causes this method to throw a ArgumentException. Без обнаружения ошибок недопустимые последовательности пропускаются, и исключение не создается.Without error detection, invalid sequences are ignored, and no exception is thrown.

Безопасность

SecurityCriticalAttribute
Требуется полное доверие для немедленного вызывающего объекта.Requires full trust for the immediate caller. Этот член не может использоваться частично доверенным или прозрачным кодом.This member cannot be used by partially trusted or transparent code.

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

GetCharCount(Byte[], Int32, Int32)

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

public:
 override int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public override int GetCharCount (byte[] bytes, int index, int count);
override this.GetCharCount : byte[] * int * int -> int
Public Overrides Function GetCharCount (bytes As Byte(), index As Integer, count As Integer) As Integer

Параметры

bytes
Byte[]

Массив байтов, содержащий последовательность байтов, которую требуется декодировать.The byte array containing the sequence of bytes to decode.

index
Int32

Индекс первого декодируемого байта.The index of the first byte to decode.

count
Int32

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

Возвраты

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

Исключения

bytes имеет значение null (Nothing).bytes is null (Nothing).

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

- или --or- Параметрыindex и count не указывают допустимый диапазон в bytes.index and count do not denote a valid range in bytes.

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

Обнаружение ошибок включено, и параметр bytes содержит недопустимую последовательность байтов.Error detection is enabled, and bytes contains an invalid sequence of bytes.

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

Примеры

В следующем примере показано, как использовать GetCharCount метод для возврата количества символов, полученных при декодировании диапазона элементов в массиве байтов с помощью. UnicodeEncodingThe following example demonstrates how to use the GetCharCount method to return the number of characters produced by decoding a range of elements in a byte array using UnicodeEncoding.

using namespace System;
using namespace System::Text;
int main()
{
   array<Byte>^bytes = {85,0,110,0,105,0,99,0,111,0,100,0,101,0};
   UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
   int charCount = Unicode->GetCharCount( bytes, 2, 8 );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}

using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        Byte[] bytes = new Byte[] {
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
        };

        UnicodeEncoding Unicode = new UnicodeEncoding();
        int charCount = Unicode.GetCharCount(bytes, 2, 8);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = {85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0}
        
        Dim uni As New UnicodeEncoding()
        Dim charCount As Integer = uni.GetCharCount(bytes, 2, 8)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    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.

При обнаружении ошибок недействительная последовательность приводит к тому, что ArgumentExceptionэтот метод выдает исключение.With error detection, an invalid sequence causes this method to throw a ArgumentException. Без обнаружения ошибок недопустимые последовательности пропускаются, и исключение не создается.Without error detection, invalid sequences are ignored, and no exception is thrown.

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

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