Condividi tramite


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

Definizione

Decodifica l'oggetto Rune all'inizio del buffer di origine UTF-16 specificato.

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

Parametri

source
ReadOnlySpan<Char>

Intervallo di caratteri UTF-16 di sola lettura.

result
Rune

Al termine del metodo, la runa decodificata.

charsConsumed
Int32

Al termine del metodo, il numero di caratteri letti per creare la runa.

Restituisce

Done se il buffer di origine inizia con un valore scalare con codifica UTF-16 valido. result contiene quindi il valore Rune decodificato e charsConsumed contiene il numero di valori Char usati nel buffer di input per codificare Rune.

NeedMoreData se il buffer di origine è vuoto o contiene solo un carattere surrogato alto UTF-16 autonomo. result contiene quindi ReplacementChar e charsConsumed contiene la lunghezza del buffer di input.

InvalidData se il buffer di origine inizia con un valore scalare con codifica UTF-16 in formato non valido. result contiene quindi ReplacementChar e charsConsumed contiene il numero di valori Char usati per codificare la sequenza in formato non valido. .

Commenti

La convenzione generale consiste nel chiamare questo metodo in un ciclo, slicing del source buffer in base agli charsConsumed elementi in ogni iterazione del ciclo. In ogni iterazione del ciclo contiene result il valore scalare reale se i dati sono stati decodificati correttamente oppure se Rune.ReplacementChar i dati non sono stati decodificati correttamente. Questo modello offre una comoda sostituzione automatica U+FFFD di sequenze non valide durante l'iterazione del ciclo.

Si applica a