Rune Struktura

Definicja

Reprezentuje wartość skalarną Unicode ([U + 0000.. U + D7FF], włącznie; lub [U + E000.. U + 10FFFF], włącznie).Represents a Unicode scalar value ([ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive).

public value class Rune : IComparable, IComparable<System::Text::Rune>, IEquatable<System::Text::Rune>
public value class Rune : IComparable<System::Text::Rune>, IEquatable<System::Text::Rune>
public struct Rune : IComparable, 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, IComparable(Of Rune), IEquatable(Of Rune)
Public Structure Rune
Implements IComparable(Of Rune), IEquatable(Of Rune)
Dziedziczenie
Implementuje

Uwagi

RuneWystąpienie reprezentuje wartość skalarną Unicode, co oznacza dowolny punkt kodu z wyłączeniem podzestawu (U + D800... U + DFFF).A Rune instance represents a Unicode scalar value, which means any code point excluding the surrogate range (U+D800..U+DFFF). Konstruktory typu i operatory konwersji sprawdzają poprawność danych wejściowych, dzięki czemu klienci mogą wywoływać interfejsy API przy założeniu, że Rune wystąpienie podstawowe jest poprawnie sformułowane.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.

Jeśli nie znasz wartości skalarnej Unicode, punktu kodu, części zastępczej i poprawnie sformułowanych warunków, zobacz wprowadzenie do kodowania znaków w programie .NET.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.

W poniższych sekcjach wyjaśniono:The following sections explain:

Kiedy używać typu RuneWhen to use the Rune type

Rozważ użycie Rune typu, Jeśli Twój kod:Consider using the Rune type if your code:

  • Wywołuje interfejsy API, które wymagają wartości skalarnych UnicodeCalls APIs that require Unicode scalar values
  • Jawnie obsługuje pary zastępczeExplicitly handles surrogate pairs

Interfejsy API, które wymagają wartości skalarnych UnicodeAPIs that require Unicode scalar values

Jeśli kod iteruje char wystąpienia w string lub a ReadOnlySpan<char> , niektóre char metody nie będą działały prawidłowo w char wystąpieniach, które znajdują się w zakresie.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. Na przykład następujące interfejsy API wymagają, aby wartość skalarna char działała poprawnie:For example, the following APIs require a scalar value char to work correctly:

W poniższym przykładzie pokazano kod, który nie będzie działał poprawnie, jeśli którekolwiek z char wystąpień jest punktami kodu wieloskładnikowego: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;
}

Oto odpowiedni kod, który działa z ReadOnlySpan<char> :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;
}

Poprzedni kod działa prawidłowo w przypadku niektórych języków, takich jak angielski:The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

Ale nie działa prawidłowo w przypadku języków spoza podstawowej płaszczyzny wielojęzycznej, takiej jak Osage:But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

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

Powód, aby ta metoda zwracała nieprawidłowe wyniki dla Osage tekstu, jest to, że char wystąpienia dla liter Osage są surogatami punktami kodu.The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. Żaden pojedynczy punkt kodowy nie ma wystarczających informacji, aby określić, czy jest to litera.No single surrogate code point has enough information to determine if it's a letter.

Jeśli zmienisz ten kod, aby użyć Rune zamiast char , metoda działa prawidłowo z punktami kodu poza podstawową płaszczyzną wielojęzyczną: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;
}

Oto odpowiedni kod, który działa z ReadOnlySpan<char> :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;
}

Powyższy kod zlicza prawidłowo Osage litery:The preceding code counts Osage letters correctly:

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

Kod, który jawnie obsługuje pary zastępczeCode that explicitly handles surrogate pairs

Rozważ użycie Rune typu, jeśli kod wywołuje interfejsy API, które jawnie działają w punktach kodowych surogatów, takich jak następujące metody:Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

Na przykład następująca metoda ma specjalną logikę do działania z parami surogatu char :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.");
        }
    }
}

Taki kod jest prostszy, jeśli jest wykorzystywany Rune , jak w poniższym przykładzie: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
    }
}

Kiedy nie używać RuneWhen not to use Rune

Nie musisz używać Rune typu, Jeśli Twój kod:You don't need to use the Rune type if your code:

  • Wyszukuje dokładne char dopasowaniaLooks for exact char matches
  • Dzieli ciąg na znaną wartość charSplits a string on a known char value

Użycie Rune typu może zwrócić nieprawidłowe wyniki, jeśli kod:Using the Rune type may return incorrect results if your code:

  • Zlicza liczbę wyświetlanych znaków w stringCounts the number of display characters in a string

Wyszukaj dokładne char dopasowaniaLook for exact char matches

Poniższy kod wykonuje iterację w string poszukiwaniu określonych znaków, zwracając indeks pierwszego dopasowania.The following code iterates through a string looking for specific characters, returning the index of the first match. Nie trzeba zmieniać tego kodu Rune , ponieważ kod szuka znaków, które są reprezentowane przez jeden char .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
}

Dzieli ciąg na znany charSplit a string on a known char

Typowym sposobem jest wywołanie string.Split i użycie ograniczników, takich jak ' ' (Space) lub ',' (przecinek), jak w poniższym przykładzie: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(',');

Nie ma potrzeby użycia w Rune tym miejscu, ponieważ kod szuka znaków, które są reprezentowane przez jeden char .There is no need to use Rune here, because the code is looking for characters that are represented by a single char.

Zlicz liczbę wyświetlanych znaków w stringCount the number of display characters in a string

Liczba Rune wystąpień w ciągu może nie odpowiadać liczbie widocznych znaków użytkownika podczas wyświetlania ciągu.The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Ponieważ Rune wystąpienia reprezentują wartości skalarne Unicode, składniki zgodne ze wskazówkami segmentacji tekstu Unicode mogą służyć Rune jako blok konstrukcyjny do zliczania znaków wyświetlania.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.

StringInfoTyp może służyć do zliczania wyświetlanych znaków, ale w implementacjach platformy .NET innej niż .NET 5 nie jest prawidłowo liczona we wszystkich scenariuszach.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.

Aby uzyskać więcej informacji, zobacz Grapheme klastrów.For more information, see Grapheme clusters.

Jak utworzyć wystąpienie RuneHow to instantiate a Rune

Istnieje kilka sposobów na uzyskanie Rune wystąpienia.There are several ways to get a Rune instance. Można użyć konstruktora, aby utworzyć Rune bezpośrednio z:You can use a constructor to create a Rune directly from:

  • Punkt kodu.A code point.

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

    Rune c = new Rune('a');
    
  • Para dwuskładnikowa char .A surrogate char pair.

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

Wszystkie konstruktory zgłaszają, ArgumentException Jeśli dane wejściowe nie reprezentują prawidłowej wartości skalarnej Unicode.All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

Istnieją Rune.TryCreate dostępne metody dla wywołujących, którzy nie chcą, aby wyjątki zostały zgłoszone w przypadku niepowodzenia.There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

Rune wystąpienia mogą być również odczytywane z istniejących sekwencji wejściowych.Rune instances can also be read from existing input sequences. Na przykład w przypadku, gdy ReadOnlySpan<char> reprezentuje dane w formacie UTF-16, Rune.DecodeFromUtf16 Metoda zwraca pierwsze Rune wystąpienie na początku zakresu wejściowego.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. Rune.DecodeFromUtf8Metoda działa podobnie, przyjmując ReadOnlySpan<byte> parametr reprezentujący dane w formacie UTF-8.The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. Istnieją równoważne metody do odczytu z końca zakresu zamiast początku zakresu.There are equivalent methods to read from the end of the span instead of the beginning of the span.

Właściwości zapytania RuneQuery properties of a Rune

Aby uzyskać wartość całkowitą punktu kodu dla Rune wystąpienia, użyj Rune.Value właściwości.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)

Wiele statycznych interfejsów API dostępnych w danym char typie jest również dostępnych w Rune typie.Many of the static APIs available on the char type are also available on the Rune type. Na przykład Rune.IsWhiteSpace i Rune.GetUnicodeCategory są odpowiednikami Char.IsWhiteSpace Char.GetUnicodeCategory metod i.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. RuneMetody poprawnie obsługują pary dwuskładnikowe.The Rune methods correctly handle surrogate pairs.

Poniższy przykładowy kod przyjmuje ReadOnlySpan<char> jako dane wejściowe i obcina z zarówno początku, jak i końca zakresu Rune , co oznacza, że nie jest literą lub cyfrą.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;
}

Istnieją pewne różnice dotyczące interfejsów API między char i Rune .There are some API differences between char and Rune. Na przykład:For example:

Konwersja Rune do UTF-8 lub UTF-16Convert a Rune to UTF-8 or UTF-16

Ponieważ a Rune jest wartością skalarną Unicode, można ją przekonwertować na kodowanie UTF-8, UTF-16 lub UTF-32.Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. RuneTyp ma wbudowaną obsługę konwersji do UTF-8 i UTF-16.The Rune type has built-in support for conversion to UTF-8 and UTF-16.

Rune.EncodeToUtf16Konwertuje Rune wystąpienie na char wystąpienia.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Aby zbadać liczbę char wystąpień, które byłyby wynikiem konwersji Rune wystąpienia na UTF-16, użyj Rune.Utf16SequenceLength właściwości.To query the number of char instances that would result from converting a Rune instance to UTF-16, use the Rune.Utf16SequenceLength property. Podobne metody istnieją dla konwersji UTF-8.Similar methods exist for UTF-8 conversion.

Poniższy przykład konwertuje Rune wystąpienie na char tablicę.The following example converts a Rune instance to a char array. Kod założono, że masz Rune wystąpienie w rune zmiennej:The code assumes you have a Rune instance in the rune variable:

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

Ponieważ a string jest sekwencją znaków UTF-16, Poniższy przykład konwertuje również Rune wystąpienie na UTF-16: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();

Poniższy przykład konwertuje Rune wystąpienie na UTF-8 tablicę bajtową:The following example converts a Rune instance to a UTF-8 byte array:

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

Rune.EncodeToUtf16Metody i Rune.EncodeToUtf8 zwracają rzeczywistą liczbę elementów, które są zapisywane.The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. Zgłasza wyjątek, jeśli bufor docelowy jest zbyt krótki, aby mógł zawierać wynik.They throw an exception if the destination buffer is too short to contain the result. Istnieją również nierzucane i niezgłaszające się TryEncodeToUtf8 EncodeToUtf16 metody, które chcą uniknąć wyjątków.There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

Rune w programie .NET a inne językiRune in .NET vs. other languages

Termin "Rune" nie jest zdefiniowany w standardzie Unicode.The term "rune" is not defined in the Unicode Standard. Terminy z powrotem do tworzenia UTF-8.The term dates back to the creation of UTF-8. Rob Peak i Krzysztof Thompson szukali terminu, aby opisać, co ostatecznie stanie się znane jako punkt kodu.Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. Są one rozliczane w okresie "Rune", a Rob Peak w późniejszym wpływie na język programowania języka go, który pomaga popularize okres.They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

Jednak Rune Typ .NET nie jest odpowiednikiem rune typu go.However, the .NET Rune type is not the equivalent of the Go rune type. W programie go rune typem jest alias dla int32 .In Go, the rune type is an alias for int32. Element go Rune jest przeznaczony do reprezentowania punktu kodu Unicode, ale może to być dowolna wartość 32-bitowa, w tym zastępcze punkty kodów i wartości, które nie są dozwolonymi punktami kodu Unicode.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.

W przypadku podobnych typów w innych językach programowania Zobacz typ pierwotny char lub Unicode.Scalar Typ SWIFT(Rust), oba reprezentujące wartości skalarne Unicode.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. Zapewniają one funkcje podobne do programu. Typ sieci Rune i nie zezwalają na tworzenie wystąpień wartości, które nie są dozwolonymi wartościami skalarnymi Unicode.They provide functionality similar to .NET's Rune type, and they disallow instantiation of values that are not legal Unicode scalar values.

Konstruktory

Rune(Char)

Tworzy Rune z dostarczonej jednostki kodu UTF-16.Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

Tworzy Rune z podanej pary zastępczej UTF-16.Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Tworzy Rune z określonej 32-bitowej liczby całkowitej, która reprezentuje wartość skalarną Unicode.Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Tworzy Rune z określonej 32-bitowej liczby całkowitej bez znaku, która reprezentuje wartość skalarną Unicode.Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

Właściwości

IsAscii

Pobiera wartość wskazującą, czy wartość skalarna skojarzona z tym Rune jest w zakresie kodowania ASCII.Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

Pobiera wartość wskazującą, czy wartość skalarna skojarzona z tym Rune jest w zakresie kodowania BMP.Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

Pobiera płaszczyznę Unicode (od 0 do 16 włącznie), która zawiera tę wartość skalarną.Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Pobiera Rune wystąpienie, które reprezentuje znak zastępczy Unicode U + FFFD.Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

Pobiera długość w jednostkach kodu ( Char ) sekwencji UTF-16 wymaganych do reprezentowania tej wartości skalarnej.Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

Pobiera długość w jednostkach kodu sekwencji UTF-8 wymaganych do reprezentowania tej wartości skalarnej.Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Pobiera wartość skalarną Unicode jako liczbę całkowitą.Gets the Unicode scalar value as an integer.

Metody

CompareTo(Rune)

Porównuje bieżące wystąpienie z określonym Rune wystąpieniem.Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Dekoduje na Rune początku dostarczonego bufora źródłowego UTF-16.Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Dekoduje na Rune początku dostarczonego bufora źródłowego UTF-8.Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Dekoduje na Rune końcu dostarczonego bufora źródłowego UTF-16.Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Dekoduje na Rune końcu podanego buforu źródłowego UTF-8.Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

Koduje to Rune w buforze DOCELOWYM UTF-16.Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

Koduje tę Rune wartość do bufora docelowego UTF-8.Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

Zwraca wartość wskazującą, czy bieżące wystąpienie i określony obiekt są równe.Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

Zwraca wartość wskazującą, czy bieżące wystąpienie i określone Rune są równe.Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.Returns the hash code for this instance.

GetNumericValue(Rune)

Pobiera wartość liczbową skojarzoną z określonym Rune.Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

Pobiera Rune , który rozpoczyna się od określonej pozycji w ciągu.Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

Pobiera kategorię Unicode skojarzoną z określonym Rune.Gets the Unicode category associated with the specified rune.

IsControl(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako znak kontrolny.Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako cyfra dziesiętna.Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako literę.Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako litera, czy cyfra dziesiętna.Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako mała litera.Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako liczba.Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako znak interpunkcyjny.Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako znak separatora.Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako znak symbolu.Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako wielką literą.Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

Zwraca wartość wskazującą, czy 32-bitowa liczba całkowita ze znakiem reprezentuje prawidłową wartość skalarną Unicode; oznacza to, że znajduje się w zakresie [U + 0000.. U + D7FF] włącznie; lub [U + E000.. U + 10FFFF] włącznie.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)

Zwraca wartość wskazującą, czy 32-bitowa liczba całkowita bez znaku reprezentuje prawidłową wartość skalarną Unicode; oznacza to, że znajduje się w zakresie [U + 0000.. U + D7FF], włącznie lub [U + E000.. U + 10FFFF] włącznie.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)

Zwraca wartość wskazującą, czy określony Rune jest kategoryzowany jako biały znak.Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

Zwraca kopię określonego Rune przekonwertowanej na małe litery przy użyciu reguł wielkości liter w określonej kulturze.Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

Zwraca kopię określonej Rune konwersji na małe litery przy użyciu reguł wielkości liter kultury niezmiennej.Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

Zwraca ciąg reprezentujący to Rune wystąpienie.Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

Zwraca kopię określonego Rune przekonwertowanego na wielkie litery przy użyciu reguł wielkości liter w określonej kulturze.Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

Zwraca kopię określonego Rune przekonwertowanego na wielkie litery przy użyciu reguł wielkości liter w kulturze niezmiennej.Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

Próbuje utworzyć Rune z określonej pary zastępczej UTF-16 i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie.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)

Próbuje utworzyć Rune od określonego znaku i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie.Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Próbuje utworzyć Rune z określonej liczby całkowitej ze znakiem, która reprezentuje wartość skalarną Unicode.Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Próbuje utworzyć Rune z określoną 32-bitową liczbę całkowitą bez znaku, która reprezentuje wartość skalarną Unicode.Attempts to create a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

TryEncodeToUtf16(Span<Char>, Int32)

Koduje to Rune w buforze docelowym zakodowanym w formacie UTF-16.Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

Koduje to Rune w buforze docelowym zakodowanym przy użyciu kodowania UTF-8.Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

Próbuje uzyskać, Rune który rozpoczyna się w określonej pozycji w ciągu, i zwraca wartość wskazującą, czy operacja zakończyła się pomyślnie.Attempts to get the Rune that begins at a specified position in a string, and return a value that indicates whether the operation succeeded.

Operatory

Equality(Rune, Rune)

Zwraca wartość wskazującą, czy dwa Rune wystąpienia są równe.Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

Definiuje jawną konwersję 16-bitowego znaku Unicode na Rune .Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

Definiuje jawną konwersję 32-bitowej podpisanej liczby całkowitej na Rune .Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

Definiuje jawną konwersję 32-bitowej nieoznaczonej liczby całkowitej na Rune .Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

Zwraca wartość wskazującą, czy określony element Rune jest większy niż określony Rune .Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

Zwraca wartość wskazującą, czy określony element Rune jest większy lub równy innemu określonemu Rune .Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

Zwraca wartość wskazującą, czy dwa Rune wystąpienia mają różne wartości.Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

Zwraca wartość wskazującą, czy określony element Rune jest mniejszy od innego określonego Rune .Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

Zwraca wartość wskazującą, czy określony element Rune jest mniejszy niż lub równy innemu określonemu Rune .Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

Jawne implementacje interfejsu

IComparable.CompareTo(Object)

Porównuje bieżące wystąpienie do określonego obiektu.Compares the current instance to the specified object.

Dotyczy