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 недопустимых последовательностей при итерации по циклу.

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