Поделиться через


Decoder.GetCharCount Метод

Определение

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов.

Перегрузки

GetCharCount(ReadOnlySpan<Byte>, Boolean)

При переопределении в производном классе вычисляет число символов, полученных при декодировании последовательности байтов в диапазоне. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

GetCharCount(Byte*, Int32, Boolean)

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов, начало которой задается указателем байтов. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

GetCharCount(Byte[], Int32, Int32)

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.

GetCharCount(Byte[], Int32, Int32, Boolean)

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

GetCharCount(ReadOnlySpan<Byte>, Boolean)

Исходный код:
Decoder.cs
Исходный код:
Decoder.cs
Исходный код:
Decoder.cs

При переопределении в производном классе вычисляет число символов, полученных при декодировании последовательности байтов в диапазоне. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

public:
 virtual int GetCharCount(ReadOnlySpan<System::Byte> bytes, bool flush);
public virtual int GetCharCount (ReadOnlySpan<byte> bytes, bool flush);
abstract member GetCharCount : ReadOnlySpan<byte> * bool -> int
override this.GetCharCount : ReadOnlySpan<byte> * bool -> int
Public Overridable Function GetCharCount (bytes As ReadOnlySpan(Of Byte), flush As Boolean) As Integer

Параметры

bytes
ReadOnlySpan<Byte>

Декодируемый диапазон байтов.

flush
Boolean

true для имитации очистки внутреннего состояния кодировщика после расчета; в противном случае — false.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов и байтов во внутреннем буфере.

Комментарии

Этот метод не влияет на состояние декодера.

Чтобы вычислить точный размер буфера, который GetChars требуется для хранения полученных символов, приложение должно использовать GetCharCount.

Если GetChars вызывается с flush параметром , то falseдекодер сохраняет конечные байты в конце блока данных во внутреннем буфере и использует их в следующей операции декодирования. Приложение должно вызывать GetCharCount блок данных непосредственно перед вызовом GetChars этого же блока, чтобы все конечные байты из предыдущего блока включались в вычисление.

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

GetCharCount(Byte*, Int32, Boolean)

Исходный код:
Decoder.cs
Исходный код:
Decoder.cs
Исходный код:
Decoder.cs

Важно!

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

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов, начало которой задается указателем байтов. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

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

Параметры

bytes
Byte*

Указатель на первый декодируемый байт.

count
Int32

Число байтов для декодирования.

flush
Boolean

true для имитации очистки внутреннего состояния кодировщика после расчета; в противном случае — false.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов и байтов во внутреннем буфере.

Атрибуты

Исключения

Значение параметра bytes равно null (Nothing в Visual Basic .NET).

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

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру Fallback задается значение DecoderExceptionFallback.

Комментарии

Этот метод не влияет на состояние декодера.

Чтобы вычислить точный размер массива, который GetChars требуется для хранения результирующего символа, приложение должно использовать .GetCharCount

Если GetChars вызывается с flush параметром , то falseдекодер сохраняет конечные байты в конце блока данных во внутреннем буфере и использует их в следующей операции декодирования. Приложение должно вызывать GetCharCount блок данных непосредственно перед вызовом GetChars этого же блока, чтобы все конечные байты из предыдущего блока включались в вычисление.

См. также раздел

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

GetCharCount(Byte[], Int32, Int32)

Исходный код:
Decoder.cs
Исходный код:
Decoder.cs
Исходный код:
Decoder.cs

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов.

public:
 abstract int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public abstract int GetCharCount (byte[] bytes, int index, int count);
abstract member GetCharCount : byte[] * int * int -> int
Public MustOverride Function GetCharCount (bytes As Byte(), index As Integer, count As Integer) As Integer

Параметры

bytes
Byte[]

Массив байтов, содержащий последовательность байтов, которую требуется декодировать.

index
Int32

Индекс первого декодируемого байта.

count
Int32

Число байтов для декодирования.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов и байтов во внутреннем буфере.

Исключения

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

Значение параметра index или count меньше нуля.

-или-

Параметры index и count не указывают допустимый диапазон в bytes.

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру Fallback задается значение DecoderExceptionFallback.

Примеры

В следующем примере кода показано, как использовать GetCharCount метод для вычисления количества символов, необходимых для декодирования указанного диапазона байтов в массиве.

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};
   Decoder^ uniDecoder = Encoding::Unicode->GetDecoder();
   int charCount = uniDecoder->GetCharCount( bytes, 0, bytes->Length );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}

/* This code example produces the following output.

7 characters needed to decode bytes.

*/
using System;
using System.Text;

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

        Decoder uniDecoder = Encoding.Unicode.GetDecoder();
        int charCount = uniDecoder.GetCharCount(bytes, 0, bytes.Length);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}

/* This code example produces the following output.

7 characters needed to decode bytes.

*/
Imports System.Text

Class DecoderExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = { _
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0 _
        }
        
        Dim uniDecoder As Decoder = Encoding.Unicode.GetDecoder()
        Dim charCount As Integer = uniDecoder.GetCharCount(bytes, 0, bytes.Length)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    End Sub
End Class

'This code example produces the following output.
'
'7 characters needed to decode bytes.
'

Комментарии

Этот метод не влияет на состояние декодера.

Чтобы вычислить точный размер массива, который GetChars требуется для хранения результирующего символа, приложение должно использовать .GetCharCount

Если GetChars вызывается с flush параметром , то falseдекодер сохраняет конечные байты в конце блока данных во внутреннем буфере и использует их в следующей операции декодирования. Приложение должно вызывать GetCharCount блок данных непосредственно перед вызовом GetChars этого же блока, чтобы все конечные байты из предыдущего блока включались в вычисление.

См. также раздел

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

GetCharCount(Byte[], Int32, Int32, Boolean)

Исходный код:
Decoder.cs
Исходный код:
Decoder.cs
Исходный код:
Decoder.cs

При переопределении в производном классе вычисляет количество символов, полученных при декодировании последовательности байтов из заданного массива байтов. Параметр указывает, следует ли очистить внутреннее состояние декодера после вычисления.

public:
 virtual int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count, bool flush);
public virtual int GetCharCount (byte[] bytes, int index, int count, bool flush);
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetCharCount (byte[] bytes, int index, int count, bool flush);
abstract member GetCharCount : byte[] * int * int * bool -> int
override this.GetCharCount : byte[] * int * int * bool -> int
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetCharCount : byte[] * int * int * bool -> int
override this.GetCharCount : byte[] * int * int * bool -> int
Public Overridable Function GetCharCount (bytes As Byte(), index As Integer, count As Integer, flush As Boolean) As Integer

Параметры

bytes
Byte[]

Массив байтов, содержащий последовательность байтов, которую требуется декодировать.

index
Int32

Индекс первого декодируемого байта.

count
Int32

Число байтов для декодирования.

flush
Boolean

true для имитации очистки внутреннего состояния кодировщика после расчета; в противном случае — false.

Возвращаемое значение

Число символов, полученных при декодировании заданной последовательности байтов и байтов во внутреннем буфере.

Атрибуты

Исключения

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

Значение параметра index или count меньше нуля.

-или-

Параметры index и count не указывают допустимый диапазон в bytes.

Произошел откат (см. сведения о кодировке символов в .NET)

- и -

Параметру Fallback задается значение DecoderExceptionFallback.

Комментарии

Этот метод не влияет на состояние декодера.

Чтобы вычислить точный размер массива, который GetChars требуется для хранения результирующего символа, приложение должно использовать .GetCharCount

Если GetChars вызывается с flush параметром , то falseдекодер сохраняет конечные байты в конце блока данных во внутреннем буфере и использует их в следующей операции декодирования. Приложение должно вызывать GetCharCount блок данных непосредственно перед вызовом GetChars этого же блока, чтобы все конечные байты из предыдущего блока включались в вычисление.

См. также раздел

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