Rune Struct

Definition

Representa un valor escalar Unicode ([U+0000..U+D7FF], ambos incluidos o [U+E000..U+10FFFF], ambos incluidos).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

Una instancia de Rune representa un valor escalar Unicode, lo que significa que cualquier punto de código excluye el intervalo de suplente (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). Los constructores y los operadores de conversión del tipo validan la entrada, de modo que los consumidores pueden llamar a las API suponiendo que la instancia de Rune subyacente tiene el formato correcto.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.

Si no está familiarizado con los términos valor escalar Unicode, punto de código, intervalo suplente y correcto, vea Introducción a la codificación de caracteres en .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.

En las secciones siguientes se explica:The following sections explain:

Cuándo usar el tipo RuneWhen to use the Rune type

Considere la posibilidad de usar el tipo de Rune si el código:Consider using the Rune type if your code:

  • Llama a las API que requieren valores escalares UnicodeCalls APIs that require Unicode scalar values
  • Controla explícitamente los pares suplentesExplicitly handles surrogate pairs

API que requieren valores escalares UnicodeAPIs that require Unicode scalar values

Si el código recorre en iteración las instancias de char en un string o ReadOnlySpan<char>, algunos de los métodos de char no funcionarán correctamente en char instancias que están en el intervalo de suplentes.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. Por ejemplo, las siguientes API requieren un valor escalar char para funcionar correctamente:For example, the following APIs require a scalar value char to work correctly:

En el ejemplo siguiente se muestra código que no funcionará correctamente si alguna de las instancias de char son puntos de código Suplente: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;
}

Este es un código equivalente que funciona con un 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;
}

El código anterior funciona correctamente con algunos lenguajes, como Inglés:The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

Pero no funcionará correctamente para los idiomas que se encuentran fuera del plano básico multilingüe, como Osage:But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

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

La razón por la que este método devuelve resultados incorrectos para el texto Osage es que las instancias de char para las letras Osage son puntos de código suplente.The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. Ningún punto de código suplente único tiene información suficiente para determinar si es una letra.No single surrogate code point has enough information to determine if it's a letter.

Si cambia este código para usar Rune en lugar de char, el método funciona correctamente con puntos de código fuera del plano básico multilingüe: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;
}

Este es un código equivalente que funciona con un 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;
}

El código anterior cuenta correctamente las letras Osage:The preceding code counts Osage letters correctly:

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

Código que controla explícitamente los pares suplentesCode that explicitly handles surrogate pairs

Considere la posibilidad de usar el tipo de Rune si el código llama a las API que operan explícitamente en puntos de código suplente, como los métodos siguientes:Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

Por ejemplo, el siguiente método tiene lógica especial para tratar los pares de char Suplente: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.");
        }
    }
}

Este código es más sencillo si usa Rune, como en el ejemplo siguiente: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
    }
}

Cuándo no se debe utilizar RuneWhen not to use Rune

No es necesario usar el tipo de Rune si el código:You don't need to use the Rune type if your code:

  • Busca coincidencias exactas de charLooks for exact char matches
  • Divide una cadena en un valor char conocido.Splits a string on a known char value

El uso del tipo de Rune puede devolver resultados incorrectos si el código:Using the Rune type may return incorrect results if your code:

  • Cuenta el número de caracteres de presentación en un stringCounts the number of display characters in a string

Buscar coincidencias exactas de charLook for exact char matches

El siguiente código recorre en iteración una string buscando caracteres específicos, devolviendo el índice de la primera coincidencia.The following code iterates through a string looking for specific characters, returning the index of the first match. No es necesario cambiar este código para usar Rune, ya que el código busca caracteres que están representados por un solo 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
}

Dividir una cadena en un char conocidoSplit a string on a known char

Es habitual llamar a string.Split y usar delimitadores como ' ' (espacio) o ',' (coma), como en el ejemplo siguiente: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(',');

Aquí no es necesario usar Rune, porque el código busca caracteres que están representados por un solo char.There is no need to use Rune here, because the code is looking for characters that are represented by a single char.

Contar el número de caracteres que se muestran en un stringCount the number of display characters in a string

El número de instancias de Rune de una cadena podría no coincidir con el número de caracteres que percibe el usuario que se muestran al mostrar la cadena.The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Dado que las instancias de Rune representan valores escalares Unicode, los componentes que siguen las instrucciones de segmentación de texto Unicode pueden usar Rune como un bloque de creación para contar los caracteres de visualización.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.

El tipo de StringInfo se puede usar para contar los caracteres de presentación, pero en implementaciones de .NET distintas de .NET 5 no cuenta correctamente en todos los escenarios.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.

Para obtener más información, consulte clústeres de grapheme.For more information, see Grapheme clusters.

Cómo crear una instancia de un RuneHow to instantiate a Rune

Hay varias maneras de obtener una instancia de Rune.There are several ways to get a Rune instance. Puede utilizar un constructor para crear un Rune directamente desde:You can use a constructor to create a Rune directly from:

  • Un punto de código.A code point.

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

    Rune c = new Rune('a');
    
  • Par de char suplente.A surrogate char pair.

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

Todos los constructores inician una ArgumentException si la entrada no representa un valor escalar Unicode válido.All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

Hay Rune.TryCreate métodos disponibles para los llamadores que no desean que se produzcan excepciones en caso de error.There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

también se pueden leer instancias de Rune de las secuencias de entrada existentes.Rune instances can also be read from existing input sequences. Por ejemplo, dado un ReadOnlySpan<char> que representa datos UTF-16, el método Rune.DecodeFromUtf16 devuelve la primera instancia Rune al principio del intervalo de entrada.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. El método Rune.DecodeFromUtf8 funciona de forma similar, aceptando un parámetro ReadOnlySpan<byte> que representa los datos UTF-8.The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. Hay métodos equivalentes para leer desde el final del intervalo, en lugar del principio del intervalo.There are equivalent methods to read from the end of the span instead of the beginning of the span.

Propiedades de consulta de un RuneQuery properties of a Rune

Para obtener el valor de punto de código entero de una instancia de Rune, utilice la propiedad 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)

Muchas de las API estáticas disponibles en el tipo de char también están disponibles en el tipo de Rune.Many of the static APIs available on the char type are also available on the Rune type. Por ejemplo, Rune.IsWhiteSpace y Rune.GetUnicodeCategory son equivalentes a los métodos Char.IsWhiteSpace y Char.GetUnicodeCategory.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Los métodos de Rune controlan correctamente los pares suplentes.The Rune methods correctly handle surrogate pairs.

El siguiente código de ejemplo toma un ReadOnlySpan<char> como entrada y se recorta del inicio y del final del intervalo cada Rune que no es una letra o un dígito.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;
}

Hay algunas diferencias de API entre char y Rune.There are some API differences between char and Rune. Por ejemplo:For example:

Convertir un Rune en UTF-8 o UTF-16Convert a Rune to UTF-8 or UTF-16

Puesto que una Rune es un valor escalar Unicode, se puede convertir en codificación UTF-8, UTF-16 o UTF-32.Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. El tipo de Rune tiene compatibilidad integrada para la conversión a UTF-8 y UTF-16.The Rune type has built-in support for conversion to UTF-8 and UTF-16.

El Rune.EncodeToUtf16 convierte una instancia de Rune en instancias de char.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Para consultar el número de instancias de char que resultarían de convertir una instancia de Rune a UTF-16, utilice la propiedad 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. Existen métodos similares para la conversión UTF-8.Similar methods exist for UTF-8 conversion.

En el ejemplo siguiente se convierte una instancia de Rune en una matriz de char.The following example converts a Rune instance to a char array. En el código se supone que tiene una instancia de Rune en la variable rune:The code assumes you have a Rune instance in the rune variable:

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

Puesto que una string es una secuencia de caracteres UTF-16, en el ejemplo siguiente también se convierte una instancia de Rune en 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();

En el ejemplo siguiente se convierte una instancia de Rune en una matriz de bytes 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);

Los métodos Rune.EncodeToUtf16 y Rune.EncodeToUtf8 devuelven el número real de elementos escritos.The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. Inician una excepción si el búfer de destino es demasiado corto para contener el resultado.They throw an exception if the destination buffer is too short to contain the result. No se producen TryEncodeToUtf8 y métodos de EncodeToUtf16 para los llamadores que quieren evitar excepciones.There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

Rune en .NET frente a otros lenguajesRune in .NET vs. other languages

El término "Rune" no está definido en el estándar Unicode.The term "rune" is not defined in the Unicode Standard. El término fechas de vuelta a la creación de UTF-8.The term dates back to the creation of UTF-8. Rob Pikes y Ken Thompson buscan un término para describir lo que finalmente se denominaría punto de código.Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. Se han establecido en el término "Rune", y la influye más adelante en Rob Pikes sobre el lenguaje de programación go ayudó a generalizar el término.They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

Sin embargo, el tipo de Rune de .NET no es el equivalente del tipo de rune go.However, the .NET Rune type is not the equivalent of the Go rune type. En Go, el tipo de rune es un alias de int32.In Go, the rune type is an alias for int32. Un rune go está diseñado para representar un punto de código Unicode, pero puede ser cualquier valor de 32 bits, incluidos puntos de código suplente y valores que no son puntos de código Unicode válidos.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.

En el caso de los tipos similares en otros lenguajes de programación, vea tipo primitivo de char de oxidación o tipo de Unicode.Scalar de SWIFT, ambos representan valores escalares 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. Proporcionan una funcionalidad similar a. Tipo de Rune de red y no permiten la creación de instancias de valores que no son valores escalares de Unicode válidos.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)

Crea un elemento Rune a partir de la unidad de código UTF-16 proporcionada.Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

Crea un elemento Rune a partir del par suplente UTF-16 proporcionado.Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Crea un elemento Rune a partir del entero de 32 bits especificado que representa un valor escalar Unicode.Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Crea un elemento Rune a partir del entero sin signo de 32 bits especificado que representa un valor escalar Unicode.Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

Properties

IsAscii

Obtiene un valor que indica si el valor escalar asociado a este Rune se encuentra dentro del intervalo de codificación ASCII.Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

Obtiene un valor que indica si el valor escalar asociado a este Rune se encuentra dentro del intervalo de codificación BMP.Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

Devuelve el plano Unicode (de 0 a 16, ambos incluidos) que contiene este escalar.Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Obtiene una instancia de Rune que representa el carácter de reemplazo Unicode U+FFFD.Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

Obtiene la longitud en unidades de código (Char) de la secuencia UTF-16 necesaria para representar este valor escalar.Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

Obtiene la longitud en unidades de código de la secuencia UTF-8 necesaria para representar este valor escalar.Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Obtiene el valor escalar Unicode como un entero.Gets the Unicode scalar value as an integer.

Methods

CompareTo(Rune)

Compara la instancia actual con la instancia de Rune especificada.Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Descodifica Rune al principio del búfer de origen UTF-16 proporcionado.Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Descodifica Rune al principio del búfer de origen UTF-8 proporcionado.Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Descodifica Rune al final del búfer de origen UTF-16 proporcionado.Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Descodifica Rune al final del búfer de origen UTF-8 proporcionado.Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

Codifica este elemento Rune en un búfer de destino UTF-16.Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

Codifica este elemento Rune en un búfer de destino UTF-8.Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

Devuelve un valor que indica si la instancia actual y un objeto especificado son iguales.Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

Devuelve un valor que indica si la instancia actual y un rune especificado son iguales.Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

GetNumericValue(Rune)

Obtiene el valor numérico asociado al rune especificado.Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

Obtiene el elemento Rune que comienza en una posición especificada de una cadena.Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

Obtiene la categoría Unicode asociada al rune especificado.Gets the Unicode category associated with the specified rune.

IsControl(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un carácter de control.Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un dígito decimal.Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como una letra.Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como una letra o un dígito decimal.Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como una letra minúscula.Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un número.Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un signo de puntuación.Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un carácter separador.Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como un carácter de símbolo.Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

Devuelve un valor que indica si el rune especificado se clasifica como una letra mayúscula.Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

Devuelve un valor que indica si un entero con signo de 32 bits representa un valor escalar Unicode válido; es decir, si está en el rango [U+0000..U+D7FF], ambos incluidos o [U+E000..U+10FFFF], ambos incluidos.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)

Devuelve un valor que indica si un entero sin signo de 32 bits representa un valor escalar Unicode válido; es decir, si está en el rango [U+0000..U+D7FF], ambos incluidos o [U+E000..U+10FFFF], ambos incluidos.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)

Devuelve un valor que indica si el rune especificado se clasifica como un carácter de espacio en blanco.Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

Devuelve una copia del Rune especificado convertida en minúsculas con las reglas de mayúsculas y minúsculas de la referencia cultural especificada.Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

Devuelve una copia del Rune especificado convertida en minúsculas con las reglas de mayúsculas y minúsculas de la referencia cultural invariable.Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

Devuelve la representación de cadena de esta instancia de Rune.Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

Devuelve una copia del Rune especificado convertida en mayúsculas con las reglas de mayúsculas y minúsculas de la referencia cultural especificada.Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

Devuelve una copia del Rune especificado convertida en mayúsculas con las reglas de mayúsculas y minúsculas de la referencia cultural invariable.Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

Intenta crear un elemento Rune a partir de un par suplente UTF-16 y devuelve un valor que indica si la operación se ha realizado correctamente.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)

Intenta crear un elemento Rune a partir de un carácter especificado y devuelve un valor que indica si la operación se ha realizado correctamente.Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Intenta crear un elemento Rune a partir de un entero con signo especificado que representa un valor escalar Unicode.Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Intenta crear un elemento Rune a partir de un entero sin signo de 32 bits especificado que representa un valor escalar Unicode.Attempts to create a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

TryEncodeToUtf16(Span<Char>, Int32)

Codifica este elemento Rune en un búfer de destino UTF-16 codificado.Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

Codifica este elemento Rune en un búfer de destino UTF-8 codificado.Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

Intenta obtener el elemento Rune que comienza en una posición especificada de una cadena y devuelve un valor que indica si la operación se ha realizado correctamente.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)

Devuelve un valor que indica si dos instancias de Rune son iguales.Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

Define una conversión explícita de un carácter Unicode de 16 bits en un Rune.Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

Define una conversión explícita de un entero con signo de 32 bits en un Rune.Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

Define una conversión explícita de un entero sin signo de 32 bits en un Rune.Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

Devuelve un valor que indica si un Rune especificado es mayor que otro Rune especificado.Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

Devuelve un valor que indica si un Rune especificado es mayor o igual que otro Rune especificado.Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

Devuelve un valor que indica si dos instancias de Rune tienen valores diferentes.Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

Devuelve un valor que indica si un Rune especificado es menor que otro Rune especificado.Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

Devuelve un valor que indica si un Rune especificado es menor o igual que otro Rune especificado.Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

Applies to