Rune.DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32) Метод

Определение

Декодирует в Rune начале предоставленного исходного буфера UTF-16.

public:
 static System::Buffers::OperationStatus DecodeFromUtf16(ReadOnlySpan<char> source, [Runtime::InteropServices::Out] System::Text::Rune % result, [Runtime::InteropServices::Out] int % charsConsumed);
public static System.Buffers.OperationStatus DecodeFromUtf16 (ReadOnlySpan<char> source, out System.Text.Rune result, out int charsConsumed);
static member DecodeFromUtf16 : ReadOnlySpan<char> * Rune * int -> System.Buffers.OperationStatus
Public Shared Function DecodeFromUtf16 (source As ReadOnlySpan(Of Char), ByRef result As Rune, ByRef charsConsumed As Integer) As OperationStatus

Параметры

source
ReadOnlySpan<Char>

Диапазон символов UTF-16 только для чтения.

result
Rune

При возврате методом — расшифрованная руна.

charsConsumed
Int32

Количество символов, считанных для создания руны, при возврате управления методом.

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

OperationStatus

Значение Done, если исходный буфер начинается с допустимого скалярного значения в кодировке UTF-16. result затем содержит декодированный Rune, и charsConsumed содержит количество значений Char, используемых во входном буфере для кодирования Rune.

Значение NeedMoreData, если исходный буфер пуст или содержит только автономный верхний суррогатный символ UTF-16. result затем содержит ReplacementChar, и charsConsumed содержит длину входного буфера.

Значение InvalidData, если исходный буфер начинается с неверно сформированного скалярного значения в кодировке UTF-16. result затем содержит ReplacementChar, и charsConsumed содержит количество значений Char, используемых для кодирования неправильной последовательности. .

Комментарии

Общее соглашение заключается в том, что этот метод вызывается в цикле, что приводит к фрагментированию source буфера по charsConsumed элементам каждой итерации цикла. При каждой итерации цикла result содержит действительное скалярное значение, если данные были успешно декодированы, или содержит, Rune.ReplacementChar Если данные не были успешно декодированы. Этот шаблон обеспечивает удобную автоматическую замену недопустимых последовательностей U + FFFD при переборе цикла.

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