Rune Estrutura

Definição

Representa um valor escalar Unicode ([U+0000 a U+D7FF], incluindo esses valores; ou [U+E000 a U+10FFFF], incluindo esses valores).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)
Herança
Implementações

Comentários

Uma Rune instância representa um valor escalar Unicode, que significa qualquer ponto de código, excluindo o intervalo substituto (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). Os construtores e os operadores de conversão do tipo validam a entrada, para que os consumidores possam chamar as APIs supondo que a Rune instância subjacente esteja bem formada.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.

Se você não estiver familiarizado com os termos valor escalar Unicode, ponto de código, intervalo substituto e bem formado, consulte introdução à codificação de caracteres no .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.

As seções a seguir explicam:The following sections explain:

Quando usar o tipo RuneWhen to use the Rune type

Considere usar o Rune tipo se seu código:Consider using the Rune type if your code:

  • Chama APIs que exigem valores escalares UnicodeCalls APIs that require Unicode scalar values
  • Manipula explicitamente os pares substitutosExplicitly handles surrogate pairs

APIs que exigem valores escalares UnicodeAPIs that require Unicode scalar values

Se o seu código iterar pelas char instâncias em um string ou a ReadOnlySpan<char> , alguns dos char métodos não funcionarão corretamente em char instâncias que estão no intervalo substituto.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 exemplo, as seguintes APIs exigem um valor escalar char para funcionar corretamente:For example, the following APIs require a scalar value char to work correctly:

O exemplo a seguir mostra o código que não funcionará corretamente se qualquer uma das char instâncias forem pontos de código substitutos: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;
}

Aqui está o código equivalente que funciona com um 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;
}

O código anterior funciona corretamente com alguns idiomas, como o inglês:The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

Mas ele não funcionará corretamente para idiomas fora do plano multilíngüe básico, como Osage:But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

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

O motivo pelo qual esse método retorna resultados incorretos para texto Osage é que as char instâncias de letras Osage são pontos de código substitutos.The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. Nenhum ponto de código substituto único tem informações suficientes para determinar se é uma letra.No single surrogate code point has enough information to determine if it's a letter.

Se você alterar esse código para usar Rune em vez de char , o método funcionará corretamente com pontos de código fora do plano multilíngüe básico: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;
}

Aqui está o código equivalente que funciona com um 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;
}

O código anterior conta Osage letras corretamente:The preceding code counts Osage letters correctly:

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

Código que manipula explicitamente os pares substitutosCode that explicitly handles surrogate pairs

Considere usar o Rune tipo se seu código chama APIs que operam explicitamente em pontos de código substitutos, como os seguintes métodos:Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

Por exemplo, o método a seguir tem lógica especial para lidar com char pares substitutos: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.");
        }
    }
}

Esse código é mais simples se usado Rune , como no exemplo a seguir: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
    }
}

Quando não usar RuneWhen not to use Rune

Você não precisará usar o Rune tipo se seu código:You don't need to use the Rune type if your code:

  • Procura char correspondências exatasLooks for exact char matches
  • Divide uma cadeia de caracteres em um valor de caractere conhecidoSplits a string on a known char value

Usar o Rune tipo pode retornar resultados incorretos se seu código:Using the Rune type may return incorrect results if your code:

  • Conta o número de caracteres de exibição em um stringCounts the number of display characters in a string

Procurar char correspondências exatasLook for exact char matches

O código a seguir itera string em busca de caracteres específicos, retornando o índice da primeira correspondência.The following code iterates through a string looking for specific characters, returning the index of the first match. Não é necessário alterar esse código para usar Rune , pois o código está procurando caracteres que são representados por um ú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 uma cadeia de caracteres em um conhecido charSplit a string on a known char

É comum chamar string.Split e usar delimitadores, como ' ' (espaço) ou ',' (vírgula), como no exemplo a seguir: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(',');

Não é necessário usar Rune aqui, porque o código está procurando caracteres que são representados por um ú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 o número de caracteres de exibição em um stringCount the number of display characters in a string

O número de Rune instâncias em uma cadeia de caracteres pode não corresponder ao número de caracteres que podem ser percebêveis pelo usuário mostrados ao exibir a cadeia de caracteres.The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Como as Rune instâncias representam valores escalares Unicode, os componentes que seguem as diretrizes de segmentação de texto Unicode podem usar Rune como um bloco de construção para contar caracteres de exibição.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.

O StringInfo tipo pode ser usado para contar caracteres de exibição, mas em implementações do .NET que não seja o .NET 5, ele não conta corretamente em todos os cenários.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 obter mais informações, consulte clusters grafemas.For more information, see Grapheme clusters.

Como criar uma instância de um RuneHow to instantiate a Rune

Há várias maneiras de obter uma Rune instância.There are several ways to get a Rune instance. Você pode usar um construtor para criar um Rune diretamente de:You can use a constructor to create a Rune directly from:

  • Um ponto de código.A code point.

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

    Rune c = new Rune('a');
    
  • Um char par substituto.A surrogate char pair.

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

Todos os construtores lançam um ArgumentException se a entrada não representa um valor escalar Unicode válido.All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

Rune.TryCreate métodos disponíveis para chamadores que não desejam que exceções sejam lançadas em caso de falha.There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

Rune as instâncias também podem ser lidas a partir de sequências de entrada existentes.Rune instances can also be read from existing input sequences. Por exemplo, dado um ReadOnlySpan<char> que representa dados UTF-16, o Rune.DecodeFromUtf16 método retorna a primeira Rune instância no início do span 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. O Rune.DecodeFromUtf8 método opera da mesma forma, aceitando um ReadOnlySpan<byte> parâmetro que representa dados UTF-8.The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. Há métodos equivalentes para ler a partir do final da extensão, em vez do início do span.There are equivalent methods to read from the end of the span instead of the beginning of the span.

Propriedades de consulta de um RuneQuery properties of a Rune

Para obter o valor de ponto de código inteiro de uma Rune instância, use a Rune.Value propriedade.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)

Muitas das APIs estáticas disponíveis no char tipo também estão disponíveis no Rune tipo.Many of the static APIs available on the char type are also available on the Rune type. Por exemplo, Rune.IsWhiteSpace e Rune.GetUnicodeCategory são equivalentes a Char.IsWhiteSpace Char.GetUnicodeCategory métodos e.For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Os Rune métodos manipulam corretamente pares alternativos.The Rune methods correctly handle surrogate pairs.

O código de exemplo a seguir usa ReadOnlySpan<char> como entrada e é cortado do início e do fim da extensão, a cada Rune que não é uma letra ou um 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;
}

Há algumas diferenças de API entre char e Rune .There are some API differences between char and Rune. Por exemplo:For example:

Converter um Rune para UTF-8 ou UTF-16Convert a Rune to UTF-8 or UTF-16

Como um Rune é um valor escalar Unicode, ele pode ser convertido em codificação UTF-8, UTF-16 ou UTF-32.Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. O Rune tipo tem suporte interno para conversão em UTF-8 e UTF-16.The Rune type has built-in support for conversion to UTF-8 and UTF-16.

O Rune.EncodeToUtf16 converte uma Rune instância em char instâncias.The Rune.EncodeToUtf16 converts a Rune instance to char instances. Para consultar o número de char instâncias que resultaria na conversão de uma Rune instância para UTF-16, use a Rune.Utf16SequenceLength propriedade.To query the number of char instances that would result from converting a Rune instance to UTF-16, use the Rune.Utf16SequenceLength property. Existem métodos semelhantes para conversão UTF-8.Similar methods exist for UTF-8 conversion.

O exemplo a seguir converte uma Rune instância em uma char matriz.The following example converts a Rune instance to a char array. O código pressupõe que você tenha uma Rune instância na rune variável:The code assumes you have a Rune instance in the rune variable:

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

Como um string é uma sequência de caracteres UTF-16, o exemplo a seguir também converte uma Rune instância em 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();

O exemplo a seguir converte uma Rune instância em uma 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);

Os Rune.EncodeToUtf16 Rune.EncodeToUtf8 métodos e retornam o número real de elementos gravados.The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. Eles lançarão uma exceção se o buffer de destino for muito curto para conter o resultado.They throw an exception if the destination buffer is too short to contain the result. Há também um não lançamento TryEncodeToUtf8 e EncodeToUtf16 métodos para chamadores que desejam evitar exceções.There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

Rune no .NET vs. outras linguagensRune in .NET vs. other languages

O termo "Rune" não está definido no padrão Unicode.The term "rune" is not defined in the Unicode Standard. O termo datas de volta para a criação de UTF-8.The term dates back to the creation of UTF-8. Rob Pikes e Ken Thompson estavam procurando um termo para descrever o que eventualmente se tornaria conhecido como um ponto de código.Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. Eles se deparam com o termo "Rune", e a influência mais recente de Rob Pikes sobre a linguagem de programação go ajudou a popular o termo.They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

No entanto, o Rune tipo .net não é o equivalente do rune tipo go.However, the .NET Rune type is not the equivalent of the Go rune type. Em go, o rune tipo é um alias para int32 .In Go, the rune type is an alias for int32. R go Rune se destina a representar um ponto de código Unicode, mas pode ser qualquer valor de 32 bits, incluindo pontos de código substitutos e valores que não são pontos de código Unicode legais.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.

Para tipos semelhantes em outras linguagens de programação, consulte char tipo primitivo do Rust ou Unicode.Scalar tipo Swift, ambos representando 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. Eles fornecem funcionalidade semelhante a. Tipo de rede Rune , e eles não permitem a instanciação de valores que não são valores escalares 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.

Construtores

Rune(Char)

Cria um Rune da unidade de código UTF-16 fornecida.Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

Cria um Rune do par alternativo UTF-16 fornecido.Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Cria um Rune do inteiro de 32 bits especificado representando um valor escalar Unicode.Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Cria um Rune do inteiro sem sinal de 32 bits especificado representando um valor escalar Unicode.Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

Propriedades

IsAscii

Obtém um valor que indica se o valor escalar associado a este Rune está dentro do intervalo de codificação ASCII.Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

Obtém um valor que indica se o valor escalar associado a este Rune está dentro do intervalo de codificação BMP.Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

Obtém o plano Unicode (de 0 a 16, incluindo esses valores) que contém esse escalar.Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Obtém uma instância de Rune que representa o caractere de substituição Unicode U+FFFD.Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

Obtém o comprimento em unidades de código (Char) da sequência UTF-16 necessária para representar esse valor escalar.Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

Obtém o comprimento em unidades de código da sequência UTF-8 necessária para representar esse valor escalar.Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Obtém o valor escalar Unicode como um inteiro.Gets the Unicode scalar value as an integer.

Métodos

CompareTo(Rune)

Compara a instância atual com a instância Rune especificada.Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Decodifica o Rune no início do buffer de origem UTF-16 fornecido.Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Decodifica o Rune no início do buffer de origem UTF-8 fornecido.Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

Decodifica o Rune no final do buffer de origem UTF-16 fornecido.Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

Decodifica o Rune no final do buffer de origem UTF-8 fornecido.Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

Codifica este Rune em um buffer de destino UTF-16.Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

Codifica este Rune em um buffer de destino UTF-8.Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

Retorna um valor que indica se a instância atual e um objeto especificado são iguais.Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

Retorna um valor que indica se a instância atual e um símbolo especificado são iguais.Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

GetNumericValue(Rune)

Obtém o valor numérico associado ao símbolo especificado.Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

Obtém o Rune que começa em uma posição especificada em uma cadeia de caracteres.Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

Obtém a categoria Unicode associada ao símbolo especificado.Gets the Unicode category associated with the specified rune.

IsControl(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como um caractere de controle.Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como um dígito decimal.Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como uma letra.Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como uma letra ou um dígito decimal.Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como uma letra minúscula.Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como um número.Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como uma marca de pontuação.Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como um caractere separador.Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como um caractere de símbolo.Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

Retorna um valor que indica se o símbolo especificado é categorizado como uma letra maiúscula.Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

Retorna um valor que indica se um inteiro com sinal de 32 bits representa um valor escalar Unicode válido; ou seja, se está no intervalo [U+0000 a U+D7FF], incluindo esses valores; ou [U+E000 a U+10FFFF], incluindo esses valores.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)

Retorna um valor que indica se um inteiro sem sinal de 32 bits representa um valor escalar Unicode válido; ou seja, se está no intervalo [U+0000 a U+D7FF], incluindo esses valores; ou [U+E000 a U+10FFFF], incluindo esses valores.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)

Retorna um valor que indica se o símbolo especificado é categorizado como um caractere de espaço em branco.Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

Retorna uma cópia do Rune especificado convertida em minúsculas, usando as regras de maiúsculas e minúsculas da cultura especificada.Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

Retorna uma cópia do Rune especificado convertida em minúsculas, usando as regras de maiúsculas e minúsculas da cultura invariável.Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

Retorna a representação de cadeia de caracteres dessa instância Rune.Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

Retorna uma cópia do Rune especificado convertida em maiúsculas, usando as regras de maiúsculas e minúsculas da cultura especificada.Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

Retorna uma cópia do Rune especificado convertida em maiúsculas, usando as regras de maiúsculas e minúsculas da cultura invariável.Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

Tenta criar um Rune do par alternativo UTF-16 especificado e retorna um valor que indica se a operação foi bem-sucedida.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)

Tenta criar um Rune do caractere especificado e retorna um valor que indica se a operação foi bem-sucedida.Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Tenta criar um Rune de um inteiro com sinal especificado representando um valor escalar Unicode.Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Tenta criar um Rune do inteiro sem sinal de 32 bits especificado representando um 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 Rune em um buffer de destino codifica em UTF-16.Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

Codifica este Rune em um buffer de destino codifica em UTF-8.Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

Tenta obter o Rune que começa em uma posição especificada em uma cadeia de caracteres e retornar um valor que indica se a operação foi bem-sucedida.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)

Retorna um valor que indica se duas instâncias Rune são iguais.Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

Define uma conversão explícita de um caractere Unicode de 16 bits em um Rune.Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

Define uma conversão explícita de um inteiro com sinal de 32 bits em um Rune.Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

Define uma conversão explícita de um inteiro sem sinal de 32 bits em um Rune.Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

Retorna um valor que indica se um Rune especificado é maior que outro Rune especificado.Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

Retorna um valor que indica se um Rune especificado é maior ou igual a outro Rune especificado.Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

Retorna um valor que indica se duas instâncias de Rune têm valores diferentes.Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

Retorna um valor que indica se um Rune especificado é menor que outro Rune especificado.Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

Retorna um valor que indica se um Rune especificado é menor ou igual a outro Rune especificado.Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

Implantações explícitas de interface

IComparable.CompareTo(Object)

Compara a instância atual com o objeto especificado.Compares the current instance to the specified object.

Aplica-se a