Rune Struct

Definition

Представляет скалярное значение Юникода ([U+0000.. U+D7FF] включительно или [U+E000..U+10FFFF] включительно).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

Экземпляр Rune представляет скалярное значение Юникода, означающее, что любая кодовая точка, исключая суррогатный диапазон (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). Конструкторы типа и операторы преобразования проверяют входные данные, поэтому потребители могут вызывать API, предполагая, что базовый экземпляр Rune правильно сформирован.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.

Если вы не знакомы с условиями скалярного значения в Юникоде, кодовой точки, суррогатного диапазона и правильного формата, см. статью Введение в кодировку символов в .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.

В следующих разделах описывается:The following sections explain:

Когда следует использовать тип РунеWhen to use the Rune type

Используйте тип Rune, если код:Consider using the Rune type if your code:

  • Вызывает API, требующие скалярных значений в ЮникодеCalls APIs that require Unicode scalar values
  • Явно обрабатывает суррогатные парыExplicitly handles surrogate pairs

API, для которых требуются скалярные значения ЮникодаAPIs that require Unicode scalar values

Если код выполняет перебор экземпляров char в string или ReadOnlySpan<char>, некоторые методы char не будут правильно работать на экземплярах char, которые находятся в диапазоне суррогатов.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. Например, для правильной работы следующих интерфейсов API требуется скалярное значение char:For example, the following APIs require a scalar value char to work correctly:

В следующем примере показан код, который будет работать неправильно, если любой из char экземпляров является суррогатной кодовой точкой: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;
}

Ниже приведен эквивалентный код, который работает с 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;
}

Приведенный выше код правильно работает на некоторых языках, например на английском языке:The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

Но он будет работать неправильно для языков, не входящих в стандартную многоязыковую плоскость, например Осаже:But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

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

Причина, по которой этот метод возвращает неверные результаты для Осаже текста, заключается в том, что экземпляры char для Осаже букв являются суррогатными кодовыми точками.The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. Ни одна суррогатная кодовая точка не содержит достаточно информации, чтобы определить, является ли она буквой.No single surrogate code point has enough information to determine if it's a letter.

Если изменить этот код для использования Rune вместо char, метод будет правильно работать с точками кода, находящимися за пределами базовой многоязычной плоскости: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;
}

Ниже приведен эквивалентный код, который работает с 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;
}

Приведенный выше код правильно подсчитывает Осаже буквы.The preceding code counts Osage letters correctly:

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

Код, который явно обрабатывает суррогатные парыCode that explicitly handles surrogate pairs

Используйте тип Rune, если ваш код вызывает API-интерфейсы, которые явно работают с суррогатными кодовыми точками, например следующие методы:Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

Например, следующий метод имеет специальную логику для работы с суррогатными парами 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.");
        }
    }
}

Такой код проще, если он использует Rune, как показано в следующем примере: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
    }
}

Когда не следует использовать RuneWhen not to use Rune

Не нужно использовать тип Rune, если код:You don't need to use the Rune type if your code:

  • Поиск точных совпадений charLooks for exact char matches
  • Разделяет строку на известное значение CharSplits a string on a known char value

Использование типа Rune может вернуть неверные результаты, если код:Using the Rune type may return incorrect results if your code:

  • Подсчитывает количество отображаемых символов в stringCounts the number of display characters in a string

Поиск точных совпадений charLook for exact char matches

Следующий код выполняет перебор string поиска конкретных символов, возвращая индекс первого совпадения.The following code iterates through a string looking for specific characters, returning the index of the first match. Нет необходимости изменять этот код для использования Rune, так как код ищет символы, представленные одним 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
}

Разбиение строки на известном charSplit a string on a known char

Обычно вызывается string.Split и используются разделители, такие как ' ' (пробел) или ',' (запятая), как показано в следующем примере: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(',');

Нет необходимости использовать Rune здесь, так как код ищет символы, представленные одним charом.There is no need to use Rune here, because the code is looking for characters that are represented by a single char.

Подсчет количества отображаемых символов в stringCount the number of display characters in a string

Число экземпляров Rune в строке может не совпадать с числом воспринимаемого символов, отображаемым при отображении строки.The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Так как экземпляры Rune представляют скалярные значения в Юникоде, компоненты, которые следуют правилам сегментации текста Юникода , могут использовать Rune в качестве стандартного блока для подсчета отображаемых символов.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.

Тип StringInfo можно использовать для подсчета отображаемых символов, но в реализациях .NET, отличных от .NET 5, он неверно учитывается во всех сценариях.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.

Дополнительные сведения см. в разделе кластеры графеме.For more information, see Grapheme clusters.

Создание экземпляра RuneHow to instantiate a Rune

Существует несколько способов получения экземпляра Rune.There are several ways to get a Rune instance. Конструктор можно использовать для создания Rune непосредственно из:You can use a constructor to create a Rune directly from:

  • Кодовая точка.A code point.

    Rune a = new Rune(0x0061); // LATIN SMALL LETTER A
    Rune b = new Rune(0x10421); // DESERET CAPITAL LETTER ER
    
  • Один файл char.A single char.

    Rune c = new Rune('a');
    
  • Суррогатная пара char.A surrogate char pair.

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

Все конструкторы создают ArgumentException, если входные данные не представляют Допустимое скалярное значение Юникода.All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

Существуют Rune.TryCreate методы, доступные для вызывающих объектов, которые не хотят вызывать исключения при сбое.There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

Rune экземпляры можно также считывать из существующих входных последовательностей.Rune instances can also be read from existing input sequences. Например, при наличии ReadOnlySpan<char>, представляющего данные UTF-16, метод Rune.DecodeFromUtf16 возвращает первый экземпляр Rune в начале входного диапазона.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.DecodeFromUtf8 работает аналогичным образом, принимая параметр ReadOnlySpan<byte>, представляющий данные в кодировке UTF-8.The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. Есть эквивалентные методы для чтения из конца диапазона, а не с начала диапазона.There are equivalent methods to read from the end of the span instead of the beginning of the span.

Свойства запроса RuneQuery properties of a Rune

Чтобы получить целочисленное значение кодовой точки Rune экземпляра, используйте свойство Rune.Value.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)

Многие статические API, доступные для типа char, также доступны в Rune типе.Many of the static APIs available on the char type are also available on the Rune type. Например, Rune.IsWhiteSpace и Rune.GetUnicodeCategory эквивалентны методам Char.IsWhiteSpace и Char.GetUnicodeCategory.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Методы Rune правильно обрабатывали суррогатные пары.The Rune methods correctly handle surrogate pairs.

В следующем примере кода в качестве входных данных принимается ReadOnlySpan<char> и обрезаются как с начала, так и с конца диапазона, каждый Rune которого не является буквой или цифрой.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;
}

Существует несколько различий API между char и Rune.There are some API differences between char and Rune. Пример:For example:

Преобразование Rune в UTF-8 или UTF-16Convert a Rune to UTF-8 or UTF-16

Поскольку Rune является скалярным значением Юникода, его можно преобразовать в кодировку UTF-8, UTF-16 или UTF-32.Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. Тип Rune имеет встроенную поддержку для преобразования в UTF-8 и UTF-16.The Rune type has built-in support for conversion to UTF-8 and UTF-16.

Rune.EncodeToUtf16 преобразует экземпляр Rune в char экземпляры.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Чтобы запросить число экземпляров char, которые могут быть результатом преобразования экземпляра Rune в UTF-16, используйте свойство Rune.Utf16SequenceLength.To query the number of char instances that would result from converting a Rune instance to UTF-16, use the Rune.Utf16SequenceLength property. Аналогичные методы существуют для преобразования UTF-8.Similar methods exist for UTF-8 conversion.

В следующем примере экземпляр Rune преобразуется в массив char.The following example converts a Rune instance to a char array. В коде предполагается, что в переменной rune имеется Rune экземпляр:The code assumes you have a Rune instance in the rune variable:

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

Поскольку string представляет собой последовательность символов UTF-16, следующий пример также преобразует Rune экземпляр в 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();

В следующем примере Rune экземпляр преобразуется в UTF-8 массив байтов: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.EncodeToUtf16 и Rune.EncodeToUtf8 возвращают фактическое число записанных элементов.The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. Они вызовут исключение, если буфер назначения слишком короткий и не может содержать результат.They throw an exception if the destination buffer is too short to contain the result. Для вызывающих объектов, которые хотят избежать исключений, не вызываются TryEncodeToUtf8 и EncodeToUtf16 методы.There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

Руне в .NET и других языкахRune in .NET vs. other languages

Термин "Руне" не определен в стандарте Юникода.The term "rune" is not defined in the Unicode Standard. Термин даты возвращается к созданию UTF-8.The term dates back to the creation of UTF-8. Вадиму Пайк и Кен Thompson искали термин для описания того, что в конечном итоге стало известным как кодовая точка.Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. Они были сопоставлены с термином «Руне», а Вадим Пайк в будущем влияет на язык программирования Go, помогая популяризировала этот термин.They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

Однако тип Rune .NET не эквивалентен типу rune go.However, the .NET Rune type is not the equivalent of the Go rune type. В Go тип rune является псевдонимом для int32.In Go, the rune type is an alias for int32. Руне Go предназначен для представления кодовой точки Юникода, но может быть любым 32-битным значением, включая суррогатные кодовые точки и значения, которые не являются допустимыми кодовыми точками Юникода.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.

Аналогичные типы в других языках программирования см. в разделе Руст-примитивный тип char или тип Unicode.Scalar SWIFT, оба из которых представляют скалярные значения Юникода.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. Они предоставляют функциональные возможности, аналогичные. Тип Rune NET и запрещает создание экземпляров значений, которые не являются допустимыми скалярными значениями в Юникоде.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)

Создает объект Rune из предоставленного блока кода UTF-16.Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

Создает объект Rune из предоставленной суррогатной пары UTF-16.Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Создает Rune из указанного 32-разрядного целого числа, представляющего скалярное значение Юникода.Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Создает Rune из указанного 32-разрядного целого числа без знака, представляющего скалярное значение Юникода.Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

Properties

IsAscii

Возвращает значение, указывающее, находится ли скалярное значение, связанное с этим Rune, в диапазоне кодирования ASCII.Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

Возвращает значение, указывающее, находится ли скалярное значение, связанное с этим Rune, в диапазоне кодирования BMP.Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

Возвращает плоскость Юникода (от 0 до 16 включительно), которая содержит этот скаляр.Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Возвращает экземпляр Rune, представляющий символ замены Юникода U+FFFD.Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

Возвращает длину в блоках кода (Char) для последовательности UTF-16, которая должна представлять это скалярное значение.Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

Возвращает длину в блоках для последовательности UTF-8, которая должна представлять это скалярное значение.Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Возвращает скалярное значение Юникода в виде целого числа.Gets the Unicode scalar value as an integer.

Methods

CompareTo(Rune)

Сравнивает текущий экземпляр с указанным экземпляром Rune.Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Декодирует в Rune начале предоставленного исходного буфера UTF-16.Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Декодирует в Rune начале предоставленного исходного буфера UTF-8.Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Декодирует Rune в конце предоставленного исходного буфера UTF-16.Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Декодирует Rune в конце предоставленного исходного буфера UTF-8.Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

Кодирует это Rune в буфер назначения UTF-16.Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

Кодирует это Rune в буфер назначения UTF-8.Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

Возвращает значение, указывающее, равен ли данный экземпляр указанному объекту.Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

Возвращает значение, указывающее, равен ли данный экземпляр указанной руне.Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

GetNumericValue(Rune)

Получает числовое значение, связанное с указанной руной.Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

Возвращает объект Rune, начинающийся с указанной позиции в строке.Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

Получает категорию Юникода, связанную с указанной руной.Gets the Unicode category associated with the specified rune.

IsControl(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории управляющих символов.Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории десятичных чисел.Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории букв.Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории букв или десятичных чисел.Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории букв нижнего регистра.Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории цифр.Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории знаков препинания.Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории знаков разделения.Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории знаков символов.Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

Возвращает значение, которое показывает, относится ли указанная руна к категории букв верхнего регистра.Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

Возвращает значение, указывающее, представляет ли 32-разрядное целое число со знаком допустимое скалярное значение Юникода, то есть находится ли оно в диапазоне [U+0000..U+D7FF] включительно или [U+ E000..U+10FFFF] включительно.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)

Возвращает значение, указывающее, представляет ли 32-разрядное целое число без знака допустимое скалярное значение Юникода, то есть находится ли оно в диапазоне [U+0000..U+D7FF] включительно или [U+ E000..U+10FFFF] включительно.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)

Возвращает значение, которое показывает, относится ли указанная руна к категории пробелов.Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

Возвращает копию заданного Rune, преобразованного в нижний регистр, используя правила определения регистра заданного языка и региональных параметров.Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

Возвращает копию указанного Rune, преобразованного в нижний регистр, используя правила учета регистра инвариантного языка и региональных параметров.Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

Возвращает строковое представление этого экземпляра Rune.Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

Возвращает копию заданного Rune, преобразованного в верхний регистр, используя правила определения регистра заданного языка и региональных параметров.Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

Возвращает копию указанного Rune, преобразованного в верхний регистр, используя правила учета регистра инвариантного языка и региональных параметров.Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

Пытается создать Rune из указанной суррогатной пары в UTF-16 и возвращает значение, указывающее, успешно ли выполнена операция.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)

Пытается создать Rune из указанного символа и возвращает значение, указывающее, успешно ли выполнена операция.Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Пытается создать Rune из указанного целого числа со знаком, представляющего скалярное значение Юникода.Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Пытается создать Rune из указанного целого 32-разрядного числа без знака, представляющего скалярное значение Юникода.Attempts to create a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

TryEncodeToUtf16(Span<Char>, Int32)

Кодирует это Rune в буфер назначения в кодировке UTF-16.Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

Кодирует это Rune в буфер назначения в кодировке UTF-8.Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

Пытается получить объект Rune, начинающийся с указанной позиции в строке, и возвращает значение, указывающее, завершилась ли операция успехом.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)

Возвращает значение, указывающее, равны ли два экземпляра Rune.Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

Определяет явное преобразование 16-разрядного символа Юникода в Rune.Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

Определяет явное преобразование 32-разрядного целого числа со знаком в значение Rune.Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

Определяет явное преобразование 32-разрядного целого числа без знака в значение Rune.Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

Возвращает значение, позволяющее определить, действительно ли заданное значение типа Rune больше другого заданного значения типа Rune.Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

Возвращает значение, позволяющее определить, действительно ли заданное значение типа Rune больше или равно другому заданному значению типа Rune.Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

Возвращает значение, указывающее, различаются ли значения двух экземпляров Rune.Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

Возвращает значение, позволяющее определить, действительно ли заданное значение типа Rune меньше другого заданного значения типа Rune.Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

Возвращает значение, позволяющее определить, действительно ли заданное значение типа Rune меньше или равно другому заданному значению типа Rune.Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

Applies to