Rune.DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32) Methode

Definition

Decodiert den Rune Anfang des bereitgestellten UTF-16-Quellpuffers.

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

Parameter

source
ReadOnlySpan<Char>

Eine schreibgeschützte UTF-16-Zeichenspanne.

result
Rune

Wenn diese Methode zurückgegeben wird, wird der decodierte Rune zurückgegeben.

charsConsumed
Int32

Wenn diese Methode zurückgegeben wird, wird die Anzahl der zeichen gelesen, um den Runen zu erstellen.

Gibt zurück

Done wenn der Quellpuffer mit einem gültigen UTF-16-codierten Skalarwert beginnt. resultenthält dann die decodierte , und charsConsumed enthält die Anzahl der Char Werte, die im Eingabepuffer zum Codieren der Rune.Rune

NeedMoreData wenn der Quellpuffer leer ist oder nur ein eigenständiges UTF-16-Zeichen mit hohem Ersatzzeichen enthält. result enthält ReplacementChardann die Länge des Eingabepuffers und charsConsumed enthält sie.

InvalidData wenn der Quellpuffer mit einem unformierten UTF-16-codierten Skalarwert beginnt. resultenthält ReplacementCharcharsConsumed dann die Anzahl der Werte, die zum Codieren der Char unformierten Sequenz verwendet werden. .

Hinweise

Die allgemeine Konvention besteht darin, diese Methode in einer Schleife aufzurufen und den source Puffer nach charsConsumed Elementen in jeder Iteration der Schleife zu slicieren. Enthält bei jeder Iteration der Schleife den tatsächlichen Skalarwert, result wenn die Daten erfolgreich decodiert wurden oder enthält Rune.ReplacementChar , ob die Daten nicht erfolgreich decodiert wurden. Dieses Muster bietet eine bequeme automatische U+FFFD-Ersetzung ungültiger Sequenzen beim Durchlaufen der Schleife.

Gilt für: