Rune Struct

Definition

Stellt einen Unicode-Skalarwert dar ( [ U+0000..U+D7FF ], einschließlich; oder [ U+E000..U+10FFFF ], einschließlich).Represents a Unicode scalar value ([ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive).

public value class Rune : IComparable<System::Text::Rune>, IEquatable<System::Text::Rune>
public struct Rune : IComparable<System.Text.Rune>, IEquatable<System.Text.Rune>
type Rune = struct
Public Structure Rune
Implements IComparable(Of Rune), IEquatable(Of Rune)
Inheritance
Implements

Remarks

Eine Rune-Instanz stellt einen Unicode-Skalarwert dar. Dies bedeutet einen beliebigen Codepunkt, der den Ersatzbereich ausschließt (U + D800 und. U + DFFF).A Rune instance represents a Unicode scalar value, which means any code point excluding the surrogate range (U+D800..U+DFFF). Die Konstruktoren und Konvertierungs Operatoren des Typs überprüfen die Eingabe, sodass Consumer die APIs abrufen können, vorausgesetzt, dass die zugrunde liegende Rune Instanz wohl geformt ist.The type's constructors and conversion operators validate the input, so consumers can call the APIs assuming that the underlying Rune instance is well formed.

Wenn Sie mit den Begriffen Unicode-Skalarwert, Codepunkt, Ersatz Zeichenbereich und wohl geformt nicht vertraut sind, finden Sie unter Einführung in die Zeichencodierung in .netWeitere Informationen.If you aren't familiar with the terms Unicode scalar value, code point, surrogate range, and well-formed, see Introduction to character encoding in .NET.

In den folgenden Abschnitten wird Folgendes erläutert:The following sections explain:

Verwendung des Rune-TypsWhen to use the Rune type

Verwenden Sie ggf. den Rune Typ, wenn Ihr Code Folgendes:Consider using the Rune type if your code:

  • Ruft APIs auf, die Unicode-skalare Werte erfordern.Calls APIs that require Unicode scalar values
  • Behandelt Ersatzpaare explizit.Explicitly handles surrogate pairs

APIs, die Unicode-skalare Werte erfordernAPIs that require Unicode scalar values

Wenn Ihr Code die char Instanzen in einer string oder einer ReadOnlySpan<char>durchläuft, funktionieren einige der char Methoden nicht ordnungsgemäß auf char Instanzen, die sich im Ersatzbereich befinden.If your code iterates through the char instances in a string or a ReadOnlySpan<char>, some of the char methods won't work correctly on char instances that are in the surrogate range. Beispielsweise benötigen die folgenden APIs einen Skalarwert char, um ordnungsgemäß zu funktionieren:For example, the following APIs require a scalar value char to work correctly:

Das folgende Beispiel zeigt Code, der nicht ordnungsgemäß funktioniert, wenn eine der char Instanzen Ersatz Code Punkte ist:The following example shows code that won't work correctly if any of the char instances are surrogate code points:

// THE FOLLOWING METHOD SHOWS INCORRECT CODE.
// DO NOT DO THIS IN A PRODUCTION APPLICATION.
int CountLettersBadExample(string s)
{
    int letterCount = 0;

    foreach (char ch in s)
    {
        if (char.IsLetter(ch))
        { letterCount++; }
    }

    return letterCount;
}

Dies ist der entsprechende Code, der mit einem ReadOnlySpan<char>funktioniert:Here's equivalent code that works with a ReadOnlySpan<char>:

// THE FOLLOWING METHOD SHOWS INCORRECT CODE.
// DO NOT DO THIS IN A PRODUCTION APPLICATION.
static int CountLettersBadExample(ReadOnlySpan<char> span)
{
    int letterCount = 0;

    foreach (char ch in span)
    {
        if (char.IsLetter(ch))
        { letterCount++; }
    }

    return letterCount;
}

Der vorangehende Code funktioniert ordnungsgemäß mit einigen Sprachen, wie z. b. Englisch:The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

Dies funktioniert jedoch nicht ordnungsgemäß für Sprachen außerhalb der grundlegenden mehrsprachigen Ebene, wie z. b. Osage:But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

CountLettersInString("𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟")
// Returns 0

Der Grund, warum diese Methode falsche Ergebnisse für den Osage-Text zurückgibt, ist, dass die char Instanzen für Osage-Buchstaben Ersatz Code Punkte sind.The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. Kein einzelner Ersatz Code Punkt verfügt über genügend Informationen, um zu bestimmen, ob es sich um einen Buchstaben handelt.No single surrogate code point has enough information to determine if it's a letter.

Wenn Sie diesen Code für die Verwendung von Rune anstelle charändern, funktioniert die Methode ordnungsgemäß mit Code Punkten außerhalb der grundlegenden mehrsprachigen Ebene:If you change this code to use Rune instead of char, the method works correctly with code points outside the Basic Multilingual Plane:

int CountLetters(string s)
{
    int letterCount = 0;

    foreach (Rune rune in s.EnumerateRunes())
    {
        if (Rune.IsLetter(rune))
        { letterCount++; }
    }

    return letterCount;
}

Dies ist der entsprechende Code, der mit einem ReadOnlySpan<char>funktioniert:Here's equivalent code that works with a ReadOnlySpan<char>:

static int CountLetters(ReadOnlySpan<char> span)
{
    int letterCount = 0;

    foreach (Rune rune in span.EnumerateRunes())
    {
        if (Rune.IsLetter(rune))
        { letterCount++; }
    }

    return letterCount;
}

Im vorangehenden Code werden Osage-Buchstaben ordnungsgemäß gezählt:The preceding code counts Osage letters correctly:

CountLettersInString("𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟")
// Returns 8

Code, der Ersatzpaare explizit behandeltCode that explicitly handles surrogate pairs

Verwenden Sie ggf. den Rune-Typ, wenn der Code APIs aufruft, die explizit auf Ersatz Code Punkten angewendet werden, z. b. die folgenden Methoden:Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

Beispielsweise verfügt die folgende Methode über eine spezielle Logik, um Ersatz char Paare zu behandeln:For example, the following method has special logic to deal with surrogate char pairs:

static void ProcessStringUseChar(string s)
{
    Console.WriteLine("Using char");

    for (int i = 0; i < s.Length; i++)
    {
        if (!char.IsSurrogate(s[i]))
        {
            Console.WriteLine($"Code point: {(int)(s[i])}");
        }
        else if (i + 1 < s.Length && char.IsSurrogatePair(s[i], s[i + 1]))
        {
            int codePoint = char.ConvertToUtf32(s[i], s[i + 1]);
            Console.WriteLine($"Code point: {codePoint}");
            i++; // so that when the loop iterates it's actually +2
        }
        else
        {
            throw new Exception("String was not well-formed UTF-16.");
        }
    }
}

Dieser Code ist einfacher, wenn er Runeverwendet, wie im folgenden Beispiel gezeigt:Such code is simpler if it uses Rune, as in the following example:

static void ProcessStringUseRune(string s)
{
    Console.WriteLine("Using Rune");

    for (int i = 0; i < s.Length;)
    {
        if (!Rune.TryGetRuneAt(s, i, out Rune rune))
        {
            throw new Exception("String was not well-formed UTF-16.");
        }

        Console.WriteLine($"Code point: {rune.Value}");
        i += rune.Utf16SequenceLength; // increment the iterator by the number of chars in this Rune
    }
}

Verwendung RuneWhen not to use Rune

Sie müssen den Rune-Typ nicht verwenden, wenn Ihr Code Folgendes:You don't need to use the Rune type if your code:

  • Sucht nach exakten char ÜbereinstimmungenLooks for exact char matches
  • Unterteilt eine Zeichenfolge mit einem bekannten Char-Wert.Splits a string on a known char value

Die Verwendung des Rune Typs gibt möglicherweise falsche Ergebnisse zurück, wenn Ihr Code Folgendes:Using the Rune type may return incorrect results if your code:

  • Zählt die Anzahl der Anzeige Zeichen in einem stringCounts the number of display characters in a string

Genaue char Übereinstimmungen suchenLook for exact char matches

Der folgende Code durchläuft eine string, die nach bestimmten Zeichen sucht, und gibt den Index der ersten Übereinstimmung zurück.The following code iterates through a string looking for specific characters, returning the index of the first match. Es ist nicht erforderlich, diesen Code so zu ändern, dass er Runeverwendet, da der Code nach Zeichen sucht, die durch einen einzelnen chardargestellt werden.There's no need to change this code to use Rune, as the code is looking for characters that are represented by a single char.

int GetIndexOfFirstAToZ(string s)
{
    for (int i = 0; i < s.Length; i++)
    {
        char thisChar = s[i];
        if ('A' <= thisChar && thisChar <= 'Z')
        {
            return i; // found a match
        }
    }

    return -1; // didn't find 'A' - 'Z' in the input string
}

Teilen einer Zeichenfolge in einem bekannten charSplit a string on a known char

Es ist üblich, string.Split aufzurufen und Trennzeichen wie z. b. ' ' (Leerzeichen) oder ',' (Komma) zu verwenden, wie im folgenden Beispiel gezeigt:It's common to call string.Split and use delimiters such as ' ' (space) or ',' (comma), as in the following example:

string inputString = "🐂, 🐄, 🐆";
string[] splitOnSpace = inputString.Split(' ');
string[] splitOnComma = inputString.Split(',');

Es ist nicht erforderlich, Rune hier zu verwenden, da der Code nach Zeichen sucht, die durch einen einzelnen chardargestellt werden.There is no need to use Rune here, because the code is looking for characters that are represented by a single char.

Zählen der Anzahl der Anzeige Zeichen in einer stringCount the number of display characters in a string

Die Anzahl der Rune Instanzen in einer Zeichenfolge stimmt möglicherweise nicht mit der Anzahl der Benutzer ab, die beim Anzeigen der Zeichenfolge angezeigt werden.The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Da Rune Instanzen Unicode-Skalarwerte darstellen, können Komponenten, die den Unicode-Text Segmentierungs Richtlinien folgen, Rune als Baustein zum zählen von Anzeige Zeichen verwenden.Since Rune instances represent Unicode scalar values, components that follow the Unicode text segmentation guidelines can use Rune as a building block for counting display characters.

Der StringInfo-Typ kann zum zählen von Anzeige Zeichen verwendet werden, aber in anderen .net-Implementierungen als .net 5 wird er nicht in allen Szenarien ordnungsgemäß gezählt.The StringInfo type can be used to count display characters, but in implementations of .NET other than .NET 5 it doesn't count correctly in all scenarios.

Weitere Informationen finden Sie unter Grapheme-Cluster.For more information, see Grapheme clusters.

Vorgehensweise beim Instanziieren einer RuneHow to instantiate a Rune

Es gibt mehrere Möglichkeiten, eine Rune-Instanz zu erhalten.There are several ways to get a Rune instance. Sie können einen-Konstruktor verwenden, um eine Rune direkt aus zu erstellen:You can use a constructor to create a Rune directly from:

  • Ein Codepunkt.A code point.

    Rune a = new Rune(0x0061); // LATIN SMALL LETTER A
    Rune b = new Rune(0x10421); // DESERET CAPITAL LETTER ER
    
  • Eine einzelne char.A single char.

    Rune c = new Rune('a');
    
  • Ein Ersatz char Paar.A surrogate char pair.

    Rune d = new Rune('\ud83d', '\udd2e'); // U+1F52E CRYSTAL BALL
    

Alle Konstruktoren lösen eine ArgumentException aus, wenn die Eingabe keinen gültigen Unicode-Skalarwert darstellt.All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

Für Aufrufer stehen Rune.TryCreate Methoden zur Verfügung, die keine Ausnahmen bei einem Fehler auslösen möchten.There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

Rune Instanzen können auch aus vorhandenen Eingabe Sequenzen gelesen werden.Rune instances can also be read from existing input sequences. Bei einer ReadOnlySpan<char>, die UTF-16-Daten darstellt, gibt die Rune.DecodeFromUtf16-Methode beispielsweise die erste Rune Instanz am Anfang der Eingabe Spanne zurück.For instance, given a ReadOnlySpan<char> that represents UTF-16 data, the Rune.DecodeFromUtf16 method returns the first Rune instance at the beginning of the input span. Die Rune.DecodeFromUtf8-Methode verhält sich ähnlich und akzeptiert einen ReadOnlySpan<byte> Parameter, der UTF-8-Daten darstellt.The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. Es gibt äquivalente Methoden zum Lesen vom Ende der Spanne anstelle des Anfangs der Spanne.There are equivalent methods to read from the end of the span instead of the beginning of the span.

Abfrage Eigenschaften eines RuneQuery properties of a Rune

Um den ganzzahligen Code Punkt Wert einer Rune-Instanz zu erhalten, verwenden Sie die Rune.Value-Eigenschaft.To get the integer code point value of a Rune instance, use the Rune.Value property.

Rune rune = new Rune('\ud83d', '\udd2e'); // U+1F52E CRYSTAL BALL
int codePoint = rune.Value; // = 128302 decimal (= 0x1F52E)

Viele der statischen APIs, die für den char-Typ verfügbar sind, sind auch für den Rune-Typ verfügbar.Many of the static APIs available on the char type are also available on the Rune type. Beispielsweise sind Rune.IsWhiteSpace und Rune.GetUnicodeCategory Entsprechungen für Char.IsWhiteSpace-und Char.GetUnicodeCategory-Methoden.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Die Rune Methoden behandeln Ersatzpaare ordnungsgemäß.The Rune methods correctly handle surrogate pairs.

Im folgenden Beispielcode wird eine ReadOnlySpan<char> als Eingabe und als Ausgangspunkt für alle Rune, bei denen es sich nicht um einen Buchstaben oder eine Ziffer handelt.The following example code takes a ReadOnlySpan<char> as input and trims from both the start and the end of the span every Rune that isn't a letter or a digit.

static ReadOnlySpan<char> TrimNonLettersAndNonDigits(ReadOnlySpan<char> span)
{
    // First, trim from the front.
    // If any Rune can't be decoded
    // (return value is anything other than "Done"),
    // or if the Rune is a letter or digit,
    // stop trimming from the front and
    // instead work from the end.
    while (Rune.DecodeFromUtf16(span, out Rune rune, out int charsConsumed) == OperationStatus.Done)
    {
        if (Rune.IsLetterOrDigit(rune))
        { break; }
        span = span[charsConsumed..];
    }

    // Next, trim from the end.
    // If any Rune can't be decoded,
    // or if the Rune is a letter or digit,
    // break from the loop, and we're finished.
    while (Rune.DecodeLastFromUtf16(span, out Rune rune, out int charsConsumed) == OperationStatus.Done)
    {
        if (Rune.IsLetterOrDigit(rune))
        { break; }
        span = span[..^charsConsumed];
    }

    return span;
}

Es gibt einige API-Unterschiede zwischen char und Rune.There are some API differences between char and Rune. Zum Beispiel:For example:

Konvertieren einer Rune in UTF-8 oder UTF-16Convert a Rune to UTF-8 or UTF-16

Da eine Rune ein Unicode-Skalarwert ist, kann Sie in UTF-8-, UTF-16-oder UTF-32-Codierung konvertiert werden.Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. Der Rune Typ verfügt über integrierte Unterstützung für die Konvertierung in UTF-8 und UTF-16.The Rune type has built-in support for conversion to UTF-8 and UTF-16.

Der Rune.EncodeToUtf16 konvertiert eine Rune Instanz in char-Instanzen.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Um die Anzahl der char Instanzen abzufragen, die sich aus der Umstellung einer Rune Instanz in UTF-16 ergeben würden, verwenden Sie die Rune.Utf16SequenceLength-Eigenschaft.To query the number of char instances that would result from converting a Rune instance to UTF-16, use the Rune.Utf16SequenceLength property. Ähnliche Methoden sind für die UTF-8-Konvertierung vorhanden.Similar methods exist for UTF-8 conversion.

Im folgenden Beispiel wird eine Rune Instanz in ein char Array konvertiert.The following example converts a Rune instance to a char array. Im Code wird davon ausgegangen, dass Sie über eine Rune Instanz in der rune-Variablen verfügen:The code assumes you have a Rune instance in the rune variable:

char[] chars = new char[rune.Utf16SequenceLength];
int numCharsWritten = rune.EncodeToUtf16(chars);

Da eine string eine Sequenz von UTF-16-Zeichen ist, wird im folgenden Beispiel auch eine Rune Instanz in UTF-16 konvertiert:Since a string is a sequence of UTF-16 chars, the following example also converts a Rune instance to UTF-16:

string theString = rune.ToString();

Im folgenden Beispiel wird eine Rune Instanz in ein UTF-8 Bytearray konvertiert:The following example converts a Rune instance to a UTF-8 byte array:

byte[] bytes = new byte[rune.Utf8SequenceLength];
int numBytesWritten = rune.EncodeToUtf8(bytes);

Die Methoden Rune.EncodeToUtf16 und Rune.EncodeToUtf8 geben die tatsächliche Anzahl der geschriebenen Elemente zurück.The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. Sie lösen eine Ausnahme aus, wenn der Ziel Puffer zu kurz ist, um das Ergebnis zu enthalten.They throw an exception if the destination buffer is too short to contain the result. Es gibt auch für Aufrufer, die Ausnahmen vermeiden möchten, TryEncodeToUtf8-und EncodeToUtf16 Methoden nicht auszulösen.There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

Rune in .net im Vergleich zu anderen SprachenRune in .NET vs. other languages

Der Begriff "Rune" ist im Unicode-Standard nicht definiert.The term "rune" is not defined in the Unicode Standard. Der Begriff ist zurück auf die Erstellung von UTF-8.The term dates back to the creation of UTF-8. Rob Pike und Ken Thompson suchten nach einem Begriff, der beschreibt, was schließlich als Codepunkt bezeichnet wird.Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. Sie sind auf den Begriff "Rune" festgelegt, und der spätere Einfluss von Rob Pike auf die go-Programmiersprache half dabei, den Begriff zu popularisieren.They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

Der .net Rune-Typ ist jedoch nicht mit dem go-rune Type identisch.However, the .NET Rune type is not the equivalent of the Go rune type. In Go ist der rune Typ ein Alias für int32.In Go, the rune type is an alias for int32. Eine Go-Rune ist für die Darstellung eines Unicode-Code Punkts gedacht, kann jedoch ein beliebiger 32-Bit-Wert sein, einschließlich Ersatz Code Punkten und Werten, die keine zulässigen Unicode-Code Punkte sind.A Go rune is intended to represent a Unicode code point, but it can be any 32-bit value, including surrogate code points and values that are not legal Unicode code points.

Informationen zu ähnlichen Typen in anderen Programmiersprachen finden Sie unter " Rust es primitive char Type " oder " SWIFT Unicode.Scalar Type", die beide Unicode-Skalarwerte darstellen.For similar types in other programming languages, see Rust's primitive char type or Swift's Unicode.Scalar type, both of which represent Unicode scalar values. Sie bieten ähnliche Funktionen wie. Der Netzwerktyp Rune, und Sie lassen die Instanziierung von Werten, die keine zulässigen Unicode-Skalarwerte sind, nicht zu.They provide functionality similar to .NET's Rune type, and they disallow instantiation of values that are not legal Unicode scalar values.

Constructors

Rune(Char)

Erstellt eine Rune-Struktur aus der bereitgestellten UTF-16-Codeeinheit.Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

Erstellt eine Rune-Struktur aus dem bereitgestellten UTF-16-Ersatzzeichenpaar.Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Erstellt eine Rune-Struktur aus der angegebenen 32-Bit-Ganzzahl, die einen Unicode-Skalarwert darstellt.Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Erstellt eine Rune-Struktur aus der angegebenen 32-Bit-Ganzzahl ohne Vorzeichen, die einen Unicode-Skalarwert darstellt.Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

Properties

IsAscii

Ruft einen Wert ab, der angibt, ob der Rune zugeordnete Skalarwert innerhalb des ASCII-Codierungsbereichs liegt.Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

Ruft einen Wert ab, der angibt, ob der Rune zugeordnete Skalarwert innerhalb des BMP-Codierungsbereichs liegt.Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

Ruft die Unicode-Ebene (0 bis einschließlich 16) ab, die diesen Skalar enthält.Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Ruft eine Rune-Instanz ab, die das Unicode-Ersatzzeichen U+FFFD darstellt.Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

Ruft die Länge in Codeeinheiten (Char) der UTF-16-Sequenz ab, die zur Darstellung dieses Skalarwerts erforderlich ist.Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

Ruft die Länge in Codeeinheiten der UTF-8-Sequenz ab, die zur Darstellung dieses Skalarwerts erforderlich ist.Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Ruft den Unicode-Skalarwert als ganze Zahl ab.Gets the Unicode scalar value as an integer.

Methods

CompareTo(Rune)

Vergleicht die aktuelle Instanz mit dem angegebenen Rune-Objekt.Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Decodiert das Rune-Element am Anfang des bereitgestellten UTF-16-Quellpuffers.Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Decodiert das Rune-Element am Anfang des bereitgestellten UTF-8-Quellpuffers.Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Decodiert das Rune-Element am Ende des bereitgestellten UTF-16-Quellpuffers.Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Decodiert das Rune-Element am Ende des bereitgestellten UTF-8-Quellpuffers.Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

Codiert diese Rune-Struktur in einen Zielpuffer im UTF-16-Format.Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

Codiert diese Rune-Struktur in einen Zielpuffer im UTF-8-Format.Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

Gibt einen Wert zurück, der angibt, ob die aktuelle Instanz und ein angegebenes Objekt gleich sind.Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

Gibt einen Wert zurück, der angibt, ob die aktuelle Instanz und eine angegebene Rune gleich sind.Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

GetNumericValue(Rune)

Ruft den numerischen Wert ab, der der angegebenen Rune zugeordnet ist.Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

Ruft die Rune-Struktur ab, die an der angegebenen Position in einer Zeichenfolge beginnt.Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

Ruft die Unicode-Kategorie ab, die der angegebenen Rune zugeordnet ist.Gets the Unicode category associated with the specified rune.

IsControl(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Steuerzeichen kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Dezimalzahl kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Buchstabe kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Buchstabe oder Dezimalzahl kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Kleinbuchstabe kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Zahl kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Satzzeichen kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Trennzeichen kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Symbolzeichen kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Großbuchstabe kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

Gibt einen Wert zurück, der angibt, ob eine 32-Bit-Ganzzahl mit Vorzeichen einen gültigen Unicode-Skalarwert darstellt. Dieser liegt im Bereich [ U+0000..U+D7FF ], einschließlich; oder [ U+E000..U+10FFFF ], einschließlich.Returns a value that indicates whether a 32-bit signed integer represents a valid Unicode scalar value; that is, it is in the range [ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive.

IsValid(UInt32)

Gibt einen Wert zurück, der angibt, ob eine 32-Bit-Ganzzahl ohne Vorzeichen einen gültigen Unicode-Skalarwert darstellt. Dieser liegt im Bereich [ U+0000..U+D7FF ], einschließlich; oder [ U+E000..U+10FFFF ], einschließlich.Returns a value that indicates whether a 32-bit unsigned integer represents a valid Unicode scalar value; that is, it is in the range [ U+0000..U+D7FF ], inclusive, or [ U+E000..U+10FFFF ], inclusive.

IsWhiteSpace(Rune)

Gibt einen Wert zurück, der angibt, ob die angegebene Rune als Leerzeichen kategorisiert ist.Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

Gibt eine in Kleinbuchstaben konvertierte Kopie der angegebenen Rune zurück, wobei die Regeln der Groß- und Kleinschreibung der angegebenen Kultur verwendet werden.Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

Gibt eine in Kleinbuchstaben konvertierte Kopie der angegebenen Rune zurück, wobei die Regeln der Groß- und Kleinschreibung der invarianten Kultur verwendet werden.Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

Gibt die Zeichenfolgendarstellung dieser Rune-Instanz zurück.Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

Gibt eine in Großbuchstaben konvertierte Kopie der angegebenen Rune zurück, wobei die Regeln der Groß- und Kleinschreibung der angegebenen Kultur verwendet werden.Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

Gibt eine in Großbuchstaben konvertierte Kopie der angegebenen Rune zurück, wobei die Regeln der Groß- und Kleinschreibung der invarianten Kultur verwendet werden.Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

Versucht, eine Rune-Struktur aus einem angegebenen UTF-16-Ersatzzeichenpaar zu erstellen, und gibt einen Wert zurück, der angibt, ob der Vorgang erfolgreich war.Attempts to create a Rune from the specified UTF-16 surrogate pair and returns a value that indicates whether the operation was successful.

TryCreate(Char, Rune)

Versucht, eine Rune-Struktur aus einem angegebenen Zeichen zu erstellen, und gibt einen Wert zurück, der angibt, ob der Vorgang erfolgreich war.Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Versucht, eine Rune-Struktur aus der angegebenen ganzen Zahl mit Vorzeichen zu erstellen, die einen Unicode-Skalarwert darstellt.Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Versucht, eine Rune-Struktur aus der angegebenen 32-Bit-Ganzzahl ohne Vorzeichen zu erstellen, die einen Unicode-Skalarwert darstellt.Attempts to create a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

TryEncodeToUtf16(Span<Char>, Int32)

Codiert diese Rune-Struktur in einen verschlüsselten Zielpuffer im UTF-16-Format.Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

Codiert diese Rune-Struktur in einen Zielpuffer im UTF-8-Format.Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

Versucht, die Rune-Klasse abzurufen, die an der angegebenen Position in einer Zeichenfolge beginnt und einen Wert zurückgibt, der angibt, ob der Vorgang erfolgreich war.Attempts to get the Rune that begins at a specified position in a string, and return a value that indicates whether the operation succeeded.

Operators

Equality(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob zwei Rune-Instanzen gleich sind.Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

Definiert eine explizite Konvertierung eines 16-Bit-Unicode-Zeichens in eine Rune.Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

Definiert eine explizite Konvertierung einer 32-Bit-Ganzzahl mit Vorzeichen in den Wert einer Rune.Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

Definiert eine explizite Konvertierung einer 32-Bit-Ganzzahl ohne Vorzeichen in den Wert einer Rune.Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob ein angegebenes Rune größer als eine anderes angegebenes Rune ist.Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob ein angegebenes Rune größer oder gleich einem anderen angegebenen Rune ist.Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob zwei Rune-Instanzen über unterschiedliche Werte verfügen.Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob ein angegebenes Rune kleiner als ein anderes angegebenes Rune ist.Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

Gibt einen Wert zurück, der angibt, ob ein angegebenes Rune kleiner oder gleich einem anderen angegebenen Rune ist.Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

Applies to