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
этого же блока, чтобы все конечные байты из предыдущего блока включались в вычисление.