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