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

Definition

Decodiert das Rune-Element am 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

Die decodierte Rune bei Rückgabe dieser Methode.

charsConsumed
Int32

Die Anzahl der zur Erstellung der Rune gelesenen Zeichen bei Rückgabe dieser Methode.

Gibt zurück

Done, wenn der Quellpuffer mit einem gültigen, UTF-16-codierten Skalarwert beginnt. result enthält dann die decodierte Rune-Eigenschaft und charsConsumed die Anzahl an Char-Werten, die in dem Eingabepuffer zur Codierung der Rune-Struktur verwendet wird.

NeedMoreData, wenn der Quellpuffer leer ist oder nur ein eigenständiges hohe UTF-16-Ersatzzeichen enthält. result enthält dann ReplacementChar und charsConsumed enthält die Länge des Eingabepuffers.

InvalidData, wenn der Quellpuffer mit einem falsch formatierten, UTF-16-codierten Skalarwert beginnt. result enthält dann ReplacementChar und charsConsumed enthält die Anzahl von Char-Werten, die zum Codieren der falsch formatierten Sequenz verwendet werden. .

Hinweise

Die allgemeine Konvention besteht darin, diese Methode in einer Schleife aufzurufen und den source Puffer nach charsConsumed Elementen für jede Iteration der Schleife zu schneiden. Enthält bei jeder Iteration der Schleife den echten skalaren Wert, result wenn die Daten erfolgreich decodiert wurden, oder enthält, Rune.ReplacementChar wenn die Daten nicht erfolgreich decodiert wurden. Dieses Muster ermöglicht eine bequeme automatische U+FFFD-Ersetzung ungültiger Sequenzen beim Durchlaufen der Schleife.

Gilt für: