Rune Estructura

Definición

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, 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)
Herencia
Implementaciones

Comentarios

Una Rune instancia 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 Rune instancia 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 Rune tipo 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 char instancias de string o ReadOnlySpan<char> , algunos de los char métodos no funcionarán correctamente en las char instancias que se encuentran 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 que funcione 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 char instancias es un punto 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 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 char instancias de 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 en Rune 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 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 Rune tipo 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 con los char pares suplentes: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 usar RuneWhen not to use Rune

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

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

El uso del Rune tipo 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 char coincidencias exactasLook for exact char matches

El siguiente código recorre en iteración un que string busca caracteres específicos y devuelve 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 representados por un único 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 una conocida charSplit a string on a known char

Es habitual llamar 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(',');

No es necesario usar Rune aquí, ya que el código busca caracteres que están representados por un único 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 Rune instancias 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 Rune las instancias 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 StringInfo tipo se puede usar para contar los caracteres de presentación, pero en implementaciones de .net distintas de .net 5 no se 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 Rune instancia de.There are several ways to get a Rune instance. Puede utilizar un constructor para crear directamente a Rune partir de: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 suplente char .A surrogate char pair.

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

Todos los constructores inician una excepción 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.

Rune también se pueden leer instancias 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 Rune.DecodeFromUtf16 método devuelve la primera Rune instancia 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 Rune.DecodeFromUtf8 método funciona de forma similar, y acepta un ReadOnlySpan<byte> parámetro 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 Rune instancia, use la Rune.Value propiedad.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 char tipo también están disponibles en el Rune tipo.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 Char.IsWhiteSpace Char.GetUnicodeCategory los métodos y.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Los Rune métodos controlan correctamente los pares suplentes.The Rune methods correctly handle surrogate pairs.

En el siguiente código de ejemplo ReadOnlySpan<char> se toma como entrada y se recortan del inicio y del final del intervalo cada uno de los Rune cuales 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 a 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 Rune tipo 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.

Rune.EncodeToUtf16Convierte una Rune instancia de en char instancias de.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Para consultar el número de char instancias que resultarían de convertir una Rune instancia a UTF-16, utilice la Rune.Utf16SequenceLength propiedad.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 Rune instancia de en una char matriz.The following example converts a Rune instance to a char array. En el código se supone que tiene una Rune instancia en la rune variable: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 string es una secuencia de caracteres UTF-16, en el ejemplo siguiente también se convierte una Rune instancia 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 Rune instancia de en una UTF-8 matriz de bytes: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 Rune.EncodeToUtf16 Rune.EncodeToUtf8 métodos y 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. También hay métodos y no de inicio TryEncodeToUtf8 EncodeToUtf16 para los autores de llamadas 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 Rune tipo .net no es el equivalente del rune tipo go.However, the .NET Rune type is not the equivalent of the Go rune type. En Go, el rune tipo es un alias para 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 char tipo primitivo de oxidación o Unicode.Scalar tipo 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 red Rune 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.

Constructores

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.

Propiedades

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.

Métodos

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.

Operadores

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.

Implementaciones de interfaz explícitas

IComparable.CompareTo(Object)

Compara la instancia actual con el objeto especificado.Compares the current instance to the specified object.

Se aplica a