Rune 構造体

定義

Unicode スカラー値 ([ U+0000..U+D7FF ] (最初と最後の要素を含む) または [ U+E000..U+10FFFF ] (最初と最後の要素を含む)) を表します。Represents a Unicode scalar value ([ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive).

public value class Rune : IComparable<System::Text::Rune>, IEquatable<System::Text::Rune>
public struct Rune : IComparable<System.Text.Rune>, IEquatable<System.Text.Rune>
type Rune = struct
Public Structure Rune
Implements IComparable(Of Rune), IEquatable(Of Rune)
継承
実装

注釈

Rune インスタンスは、Unicode スカラー値を表します。これは、サロゲート範囲を除く任意のコードポイント (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). 型のコンストラクターと変換演算子によって入力が検証されるため、基になる Rune インスタンスが整形式であると仮定して、コンシューマーは Api を呼び出すことができます。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.

Unicode スカラー値、コードポイント、サロゲート範囲、および適切な形式の用語について詳しく理解していない場合は、「 .net での文字エンコードの概要」を参照してください。If you aren't familiar with the terms Unicode scalar value, code point, surrogate range, and well-formed, see Introduction to character encoding in .NET.

次のセクションでは、について説明します。The following sections explain:

ルーン型を使用する場合When to use the Rune type

コードを使用する場合は、Rune の種類を使用することを検討してください。Consider using the Rune type if your code:

  • Unicode スカラー値を必要とする Api を呼び出しますCalls APIs that require Unicode scalar values
  • サロゲートペアを明示的に処理しますExplicitly handles surrogate pairs

Unicode スカラー値を必要とする ApiAPIs that require Unicode scalar values

コードが string または ReadOnlySpan<char>内の char インスタンスを反復処理する場合、一部の char メソッドは、サロゲート範囲内の char インスタンスで正しく機能しません。If your code iterates through the char instances in a string or a ReadOnlySpan<char>, some of the char methods won't work correctly on char instances that are in the surrogate range. たとえば、次の Api では、正しく機能するために char スカラー値が必要です。For example, the following APIs require a scalar value char to work correctly:

次の例は、char インスタンスがサロゲートコードポイントである場合に正しく機能しないコードを示しています。The following example shows code that won't work correctly if any of the char instances are surrogate code points:

// THE FOLLOWING METHOD SHOWS INCORRECT CODE.
// DO NOT DO THIS IN A PRODUCTION APPLICATION.
int CountLettersBadExample(string s)
{
    int letterCount = 0;

    foreach (char ch in s)
    {
        if (char.IsLetter(ch))
        { letterCount++; }
    }

    return letterCount;
}

ReadOnlySpan<char>で動作する同等のコードを次に示します。Here's equivalent code that works with a ReadOnlySpan<char>:

// THE FOLLOWING METHOD SHOWS INCORRECT CODE.
// DO NOT DO THIS IN A PRODUCTION APPLICATION.
static int CountLettersBadExample(ReadOnlySpan<char> span)
{
    int letterCount = 0;

    foreach (char ch in span)
    {
        if (char.IsLetter(ch))
        { letterCount++; }
    }

    return letterCount;
}

上記のコードは、英語などの一部の言語で正しく動作します。The preceding code works correctly with some languages such as English:

CountLettersInString("Hello")
// Returns 5

ただし、次のような基本的な多言語プレーン以外の言語では正しく機能しません。But it won't work correctly for languages outside the Basic Multilingual Plane, such as Osage:

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

Osage テキストに対してこのメソッドが誤った結果を返す理由として、Osage 文字の char インスタンスがサロゲートコードポイントであることが挙げられます。The reason this method returns incorrect results for Osage text is that the char instances for Osage letters are surrogate code points. 1つのサロゲートコードポイントには、それが文字かどうかを判断するのに十分な情報がありません。No single surrogate code point has enough information to determine if it's a letter.

このコードを charではなく Rune を使用するように変更した場合、このメソッドは基本的な多言語プレーン以外のコードポイントと正常に動作します。If you change this code to use Rune instead of char, the method works correctly with code points outside the Basic Multilingual Plane:

int CountLetters(string s)
{
    int letterCount = 0;

    foreach (Rune rune in s.EnumerateRunes())
    {
        if (Rune.IsLetter(rune))
        { letterCount++; }
    }

    return letterCount;
}

ReadOnlySpan<char>で動作する同等のコードを次に示します。Here's equivalent code that works with a ReadOnlySpan<char>:

static int CountLetters(ReadOnlySpan<char> span)
{
    int letterCount = 0;

    foreach (Rune rune in span.EnumerateRunes())
    {
        if (Rune.IsLetter(rune))
        { letterCount++; }
    }

    return letterCount;
}

上記のコードでは、Osage 文字が正しくカウントされます。The preceding code counts Osage letters correctly:

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

サロゲートペアを明示的に処理するコードCode that explicitly handles surrogate pairs

コードがサロゲートコードポイントで明示的に操作する Api (次のメソッドなど) を呼び出す場合は、Rune の型を使用することを検討してください。Consider using the Rune type if your code calls APIs that explicitly operate on surrogate code points, such as the following methods:

たとえば、次のメソッドには、サロゲート char のペアを処理するための特別なロジックがあります。For example, the following method has special logic to deal with surrogate char pairs:

static void ProcessStringUseChar(string s)
{
    Console.WriteLine("Using char");

    for (int i = 0; i < s.Length; i++)
    {
        if (!char.IsSurrogate(s[i]))
        {
            Console.WriteLine($"Code point: {(int)(s[i])}");
        }
        else if (i + 1 < s.Length && char.IsSurrogatePair(s[i], s[i + 1]))
        {
            int codePoint = char.ConvertToUtf32(s[i], s[i + 1]);
            Console.WriteLine($"Code point: {codePoint}");
            i++; // so that when the loop iterates it's actually +2
        }
        else
        {
            throw new Exception("String was not well-formed UTF-16.");
        }
    }
}

このようなコードは、次の例のように Runeを使用すると、より簡単になります。Such code is simpler if it uses Rune, as in the following example:

static void ProcessStringUseRune(string s)
{
    Console.WriteLine("Using Rune");

    for (int i = 0; i < s.Length;)
    {
        if (!Rune.TryGetRuneAt(s, i, out Rune rune))
        {
            throw new Exception("String was not well-formed UTF-16.");
        }

        Console.WriteLine($"Code point: {rune.Value}");
        i += rune.Utf16SequenceLength; // increment the iterator by the number of chars in this Rune
    }
}

Rune を使用しない場合When not to use Rune

コードの場合、Rune の種類を使用する必要はありません。You don't need to use the Rune type if your code:

  • 完全に一致する char を検索しますLooks for exact char matches
  • 既知の char 値に文字列を分割しますSplits a string on a known char value

Rune の型を使用すると、コードが次のような場合に正しくない結果を返すことがあります。Using the Rune type may return incorrect results if your code:

  • string 内の表示文字数をカウントしますCounts the number of display characters in a string

完全に一致する char を検索するLook for exact char matches

次のコードでは、特定の文字を検索する string を反復処理し、最初に一致した文字列のインデックスを返します。The following code iterates through a string looking for specific characters, returning the index of the first match. コードが1つの charで表される文字を検索するため、Runeを使用するようにこのコードを変更する必要はありません。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
}

既知の char で文字列を分割するSplit a string on a known char

次の例のように、string.Split を呼び出し、' ' (スペース) や ',' (コンマ) などの区切り記号を使用するのが一般的です。It's common to call string.Split and use delimiters such as ' ' (space) or ',' (comma), as in the following example:

string inputString = "🐂, 🐄, 🐆";
string[] splitOnSpace = inputString.Split(' ');
string[] splitOnComma = inputString.Split(',');

このコードでは1つの charで表される文字を検索するため、ここでは Rune を使用する必要はありません。There is no need to use Rune here, because the code is looking for characters that are represented by a single char.

string 内の表示文字数をカウントするCount the number of display characters in a string

文字列内の Rune インスタンスの数が、文字列を表示するときに表示されるユーザー perceivable の文字数と一致しない場合があります。The number of Rune instances in a string might not match the number of user-perceivable characters shown when displaying the string.

Rune のインスタンスは Unicode スカラー値を表しているため、 unicode テキストセグメントのガイドラインに従うコンポーネントでは、Rune を表示文字をカウントするための構成要素として使用できます。Since Rune instances represent Unicode scalar values, components that follow the Unicode text segmentation guidelines can use Rune as a building block for counting display characters.

StringInfo 型は、表示文字をカウントするために使用できますが、.NET 5 以外の .NET の実装では、すべてのシナリオで適切にカウントされません。The StringInfo type can be used to count display characters, but in implementations of .NET other than .NET 5 it doesn't count correctly in all scenarios.

詳細については、「書記素クラスター」を参照してください。For more information, see Grapheme clusters.

Rune をインスタンス化する方法How to instantiate a Rune

Rune インスタンスを取得するには、いくつかの方法があります。There are several ways to get a Rune instance. コンストラクターを使用して、から直接 Rune を作成できます。You can use a constructor to create a Rune directly from:

  • コードポイント。A code point.

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

    Rune c = new Rune('a');
    
  • サロゲート char ペア。A surrogate char pair.

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

入力が有効な Unicode スカラー値を表していない場合、すべてのコンストラクターは ArgumentException をスローします。All of the constructors throw an ArgumentException if the input doesn't represent a valid Unicode scalar value.

エラー発生時に例外がスローされないようにする呼び出し元には、Rune.TryCreate メソッドが用意されています。There are Rune.TryCreate methods available for callers who don't want exceptions to be thrown on failure.

Rune インスタンスは、既存の入力シーケンスから読み取ることもできます。Rune instances can also be read from existing input sequences. たとえば、UTF-16 データを表す ReadOnlySpan<char> を指定した場合、Rune.DecodeFromUtf16 メソッドは、入力スパンの先頭にある最初の Rune インスタンスを返します。For instance, given a ReadOnlySpan<char> that represents UTF-16 data, the Rune.DecodeFromUtf16 method returns the first Rune instance at the beginning of the input span. Rune.DecodeFromUtf8 メソッドは同様に動作し、UTF-8 データを表す ReadOnlySpan<byte> パラメーターを受け取ります。The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. スパンの先頭ではなく、スパンの末尾から読み取る同等のメソッドがあります。There are equivalent methods to read from the end of the span instead of the beginning of the span.

Rune のクエリプロパティQuery properties of a Rune

Rune インスタンスの整数コードポイント値を取得するには、Rune.Value プロパティを使用します。To get the integer code point value of a Rune instance, use the Rune.Value property.

Rune rune = new Rune('\ud83d', '\udd2e'); // U+1F52E CRYSTAL BALL
int codePoint = rune.Value; // = 128302 decimal (= 0x1F52E)

char の種類で使用できる静的 Api の多くは、Rune の種類でも使用できます。Many of the static APIs available on the char type are also available on the Rune type. たとえば、Rune.IsWhiteSpaceRune.GetUnicodeCategoryChar.IsWhiteSpace メソッドと Char.GetUnicodeCategory メソッドに相当します。For instance, Rune.IsWhiteSpace and Rune.GetUnicodeCategory are equivalents to Char.IsWhiteSpace and Char.GetUnicodeCategory methods. Rune メソッドは、サロゲートペアを正しく処理します。The Rune methods correctly handle surrogate pairs.

次のコード例では、入力として ReadOnlySpan<char> を受け取り、文字または数字ではない Rune ごとにスパンの先頭と末尾の両方からトリムしています。The following example code takes a ReadOnlySpan<char> as input and trims from both the start and the end of the span every Rune that isn't a letter or a digit.

static ReadOnlySpan<char> TrimNonLettersAndNonDigits(ReadOnlySpan<char> span)
{
    // First, trim from the front.
    // If any Rune can't be decoded
    // (return value is anything other than "Done"),
    // or if the Rune is a letter or digit,
    // stop trimming from the front and
    // instead work from the end.
    while (Rune.DecodeFromUtf16(span, out Rune rune, out int charsConsumed) == OperationStatus.Done)
    {
        if (Rune.IsLetterOrDigit(rune))
        { break; }
        span = span[charsConsumed..];
    }

    // Next, trim from the end.
    // If any Rune can't be decoded,
    // or if the Rune is a letter or digit,
    // break from the loop, and we're finished.
    while (Rune.DecodeLastFromUtf16(span, out Rune rune, out int charsConsumed) == OperationStatus.Done)
    {
        if (Rune.IsLetterOrDigit(rune))
        { break; }
        span = span[..^charsConsumed];
    }

    return span;
}

charRuneには API の違いがいくつかあります。There are some API differences between char and Rune. 次に例を示します。For example:

Rune を UTF-8 または UTF-16 に変換します。Convert a Rune to UTF-8 or UTF-16

Rune は Unicode スカラー値であるため、UTF-8、UTF-16、または32エンコードに変換することができます。Since a Rune is a Unicode scalar value, it can be converted to UTF-8, UTF-16, or UTF-32 encoding. Rune 型には、UTF-8 および UTF-16 に変換するためのサポートが組み込まれています。The Rune type has built-in support for conversion to UTF-8 and UTF-16.

Rune.EncodeToUtf16 は、Rune インスタンスを char インスタンスに変換します。The Rune.EncodeToUtf16 converts a Rune instance to char instances. Rune インスタンスを UTF-16 に変換した結果として得られる char インスタンスの数を照会するには、Rune.Utf16SequenceLength プロパティを使用します。To query the number of char instances that would result from converting a Rune instance to UTF-16, use the Rune.Utf16SequenceLength property. UTF-8 変換でも同様のメソッドが存在します。Similar methods exist for UTF-8 conversion.

次の例では、Rune インスタンスを char 配列に変換します。The following example converts a Rune instance to a char array. このコードは、rune 変数に Rune インスタンスがあることを前提としています。The code assumes you have a Rune instance in the rune variable:

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

string は一連の UTF-16 文字であるため、次の例では、Rune のインスタンスも UTF-16 に変換します。Since a string is a sequence of UTF-16 chars, the following example also converts a Rune instance to UTF-16:

string theString = rune.ToString();

次の例では、Rune インスタンスを UTF-8 バイト配列に変換します。The following example converts a Rune instance to a UTF-8 byte array:

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

Rune.EncodeToUtf16 メソッドと Rune.EncodeToUtf8 メソッドは、書き込まれた実際の要素数を返します。The Rune.EncodeToUtf16 and Rune.EncodeToUtf8 methods return the actual number of elements written. コピー先のバッファーが短すぎて結果を格納できない場合は、例外がスローされます。They throw an exception if the destination buffer is too short to contain the result. 例外を回避する必要がある呼び出し元に対して、スローされない TryEncodeToUtf8 および EncodeToUtf16 メソッドもあります。There are non-throwing TryEncodeToUtf8 and EncodeToUtf16 methods as well for callers who want to avoid exceptions.

.NET とその他の言語のルーンRune in .NET vs. other languages

"ルーン" という用語は、Unicode 規格で定義されていません。The term "rune" is not defined in the Unicode Standard. 日付という用語は、 utf-8 の作成に戻ります。The term dates back to the creation of UTF-8. 渡シャーマンと Ken Thompson は、最終的にコードポイントとして知られることを説明する用語を探していました。Rob Pike and Ken Thompson were looking for a term to describe what would eventually become known as a code point. これらは "ルーン" という用語で決済され、後で渡シャーマンが Popularize のようなプログラミング言語に影響を及ぼします。They settled on the term "rune", and Rob Pike's later influence over the Go programming language helped popularize the term.

ただし、.NET Rune の種類は、[rune の種類] と同じではありません。However, the .NET Rune type is not the equivalent of the Go rune type. 外出先では、rune の種類はint32のエイリアスです。In Go, the rune type is an alias for int32. ゴールーンは、Unicode コードポイントを表すことを目的としていますが、サロゲートコードポイントや有効な Unicode コードポイントではない値など、任意の32ビット値にすることができます。A Go rune is intended to represent a Unicode code point, but it can be any 32-bit value, including surrogate code points and values that are not legal Unicode code points.

他のプログラミング言語の類似する型については、「 Rust のプリミティブ char type 」または「 Swift の Unicode.Scalar」を参照してください。どちらも 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. と同様の機能を提供します。NET の Rune 型で、有効な Unicode スカラー値ではない値のインスタンス化を許可しません。They provide functionality similar to .NET's Rune type, and they disallow instantiation of values that are not legal Unicode scalar values.

コンストラクター

Rune(Char)

指定された UTF-16 コード単位から Rune を作成します。Creates a Rune from the provided UTF-16 code unit.

Rune(Char, Char)

指定された UTF-16 サロゲート ペアから Rune を作成します。Creates a Rune from the provided UTF-16 surrogate pair.

Rune(Int32)

Unicode スカラー値を表す、指定された 32 ビット整数から Rune を作成します。Creates a Rune from the specified 32-bit integer that represents a Unicode scalar value.

Rune(UInt32)

Unicode スカラー値を表す、指定された符号なし 32 ビット整数から Rune を作成します。Creates a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

プロパティ

IsAscii

この Rune に関連付けられているスカラー値が ASCII エンコード範囲内であるかどうかを示す値を取得します。Gets a value that indicates whether the scalar value associated with this Rune is within the ASCII encoding range.

IsBmp

この Rune に関連付けられているスカラー値が BMP エンコード範囲内であるかどうかを示す値を取得します。Gets a value that indicates whether the scalar value associated with this Rune is within the BMP encoding range.

Plane

このスカラーを含む Unicode 平面 (0 から 16 まで、0 と 16 を含む) を取得します。Gets the Unicode plane (0 to 16, inclusive) that contains this scalar.

ReplacementChar

Unicode 置換文字 U+FFFD を表す Rune インスタンスを取得します。Gets a Rune instance that represents the Unicode replacement character U+FFFD.

Utf16SequenceLength

このスカラー値を表すために必要な UTF-16 シーケンスのコード単位 (Char) の長さを取得します。Gets the length in code units (Char) of the UTF-16 sequence required to represent this scalar value.

Utf8SequenceLength

このスカラー値を表すために必要な UTF-8 シーケンスのコード単位の長さを取得します。Gets the length in code units of the UTF-8 sequence required to represent this scalar value.

Value

Unicode スカラー値を整数として取得します。Gets the Unicode scalar value as an integer.

メソッド

CompareTo(Rune)

現在のインスタンスを、指定された Rune インスタンスと比較します。Compares the current instance to the specified Rune instance.

DecodeFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

指定された UTF-16 ソース バッファーの先頭で Rune を復号します。Decodes the Rune at the beginning of the provided UTF-16 source buffer.

DecodeFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

指定された UTF-8 ソース バッファーの先頭で Rune を復号します。Decodes the Rune at the beginning of the provided UTF-8 source buffer.

DecodeLastFromUtf16(ReadOnlySpan<Char>, Rune, Int32)

指定された UTF-16 ソース バッファーの末尾で Rune を復号します。Decodes the Rune at the end of the provided UTF-16 source buffer.

DecodeLastFromUtf8(ReadOnlySpan<Byte>, Rune, Int32)

指定された UTF-8 ソース バッファーの末尾で Rune を復号します。Decodes the Rune at the end of the provided UTF-8 source buffer.

EncodeToUtf16(Span<Char>)

この Rune を UTF-16 ターゲット バッファーにエンコードします。Encodes this Rune to a UTF-16 destination buffer.

EncodeToUtf8(Span<Byte>)

この Rune をエンコードし、UTF-8 ターゲット バッファーに書き込みます。Encodes this Rune to a UTF-8 destination buffer.

Equals(Object)

現在のインスタンスと、指定されたオブジェクトが等しいかどうかを示す値を返します。Returns a value that indicates whether the current instance and a specified object are equal.

Equals(Rune)

現在のインスタンスと指定されたルーンが等しいかどうかを示す値を返します。Returns a value that indicates whether the current instance and a specified rune are equal.

GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

GetNumericValue(Rune)

指定されたルーンに関連付けられている数値を取得します。Gets the numeric value associated with the specified rune.

GetRuneAt(String, Int32)

文字列において指定された位置から始まる Rune を取得します。Gets the Rune that begins at a specified position in a string.

GetUnicodeCategory(Rune)

指定されたルーンに関連付けられている Unicode カテゴリを取得します。Gets the Unicode category associated with the specified rune.

IsControl(Rune)

指定されたルーンが制御文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a control character.

IsDigit(Rune)

指定されたルーンが 10 進数の数字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a decimal digit.

IsLetter(Rune)

指定されたルーンが文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a letter.

IsLetterOrDigit(Rune)

指定されたルーンが文字または 10 進数の数字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a letter or a decimal digit.

IsLower(Rune)

指定されたルーンが小文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a lowercase letter.

IsNumber(Rune)

指定されたルーンが数字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a number.

IsPunctuation(Rune)

指定されたルーンが区切り記号として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a punctuation mark.

IsSeparator(Rune)

指定されたルーンが区切り文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a separator character.

IsSymbol(Rune)

指定されたルーンが記号として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a symbol character.

IsUpper(Rune)

指定されたルーンが大文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as an uppercase letter.

IsValid(Int32)

32 ビットの符号付き整数が有効な Unicode スカラー値、すなわち、[ U+0000..U+D7FF ] (最初と最後の要素を含む) または [ U+E000..U+10FFFF ] (最初と最後の要素を含む) という範囲内にあるかどうかを示す値を返します。Returns a value that indicates whether a 32-bit signed integer represents a valid Unicode scalar value; that is, it is in the range [ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive.

IsValid(UInt32)

32 ビットの符号なし整数が有効な Unicode スカラー値、すなわち、[ U+0000..U+D7FF ] (最初と最後の要素を含む) または [ U+E000..U+10FFFF ] (最初と最後の要素を含む) という範囲内にあるかどうかを示す値を返します。Returns a value that indicates whether a 32-bit unsigned integer represents a valid Unicode scalar value; that is, it is in the range [ U+0000..U+D7FF ], inclusive, or [ U+E000..U+10FFFF ], inclusive.

IsWhiteSpace(Rune)

指定されたルーンが空白文字として分類されているかどうかを示す値を返します。Returns a value that indicates whether the specified rune is categorized as a white space character.

ToLower(Rune, CultureInfo)

指定されたカルチャの大文字と小文字の規則を使用して、指定された Rune のコピーを小文字に変換して返します。Returns a copy of the specified Rune converted to lowercase, using the casing rules of the specified culture.

ToLowerInvariant(Rune)

インバリアント カルチャの大文字と小文字の規則を使用して、指定された Rune のコピーを小文字に変換して返します。Returns a copy of the specified Rune converted to lowercase using the casing rules of the invariant culture.

ToString()

この Rune オブジェクトの文字列表現を返します。Returns the string representation of this Rune instance.

ToUpper(Rune, CultureInfo)

指定されたカルチャの大文字と小文字の規則を使用して、指定された Rune のコピーを大文字に変換して返します。Returns a copy of the specified Rune converted to uppercase, using the casing rules of the specified culture.

ToUpperInvariant(Rune)

インバリアント カルチャの大文字と小文字の規則を使用して、指定された Rune のコピーを大文字に変換して返します。Returns a copy of the specified Rune converted to uppercase using the casing rules of the invariant culture.

TryCreate(Char, Char, Rune)

指定された UTF-16 サロゲート ペアから Rune の作成を試し、操作が成功したかどうかを示す値を返します。Attempts to create a Rune from the specified UTF-16 surrogate pair and returns a value that indicates whether the operation was successful.

TryCreate(Char, Rune)

指定された文字から Rune の作成を試し、操作が成功したかどうかを示す値を返します。Attempts to create a Rune from a specified character and returns a value that indicates whether the operation succeeded.

TryCreate(Int32, Rune)

Unicode スカラー値を表す指定された符号付き整数から Rune の作成を試します。Attempts to create a Rune from a specified signed integer that represents a Unicode scalar value.

TryCreate(UInt32, Rune)

Unicode スカラー値を表す、指定された符号付き 32 ビット整数から Rune の作成を試します。Attempts to create a Rune from the specified 32-bit unsigned integer that represents a Unicode scalar value.

TryEncodeToUtf16(Span<Char>, Int32)

この Rune を、UTF-16 でエンコードされたターゲット バッファーにエンコードします。Encodes this Rune to a UTF-16 encoded destination buffer.

TryEncodeToUtf8(Span<Byte>, Int32)

この Rune を、UTF-8 でエンコードされたターゲット バッファーにエンコードします。Encodes this Rune to a UTF-8 encoded destination buffer.

TryGetRuneAt(String, Int32, Rune)

文字列において指定された位置から始まる Rune の取得を試し、操作が成功したかどうかを示す値を返します。Attempts to get the Rune that begins at a specified position in a string, and return a value that indicates whether the operation succeeded.

演算子

Equality(Rune, Rune)

2 つの Rune インスタンスが等しいかどうかを示す値を返します。Returns a value that indicates whether two Rune instances are equal.

Explicit(Char to Rune)

16 ビットの Unicode 文字の Rune への明示的な変換を定義します。Defines an explicit conversion of a 16-bit Unicode character to a Rune.

Explicit(Int32 to Rune)

32 ビット符号付き整数の Rune への明示的な変換を定義します。Defines an explicit conversion of a 32-bit signed integer to a Rune.

Explicit(UInt32 to Rune)

32 ビット符号なし整数の Rune への明示的な変換を定義します。Defines an explicit conversion of a 32-bit unsigned integer to a Rune.

GreaterThan(Rune, Rune)

指定した Rune が、指定した別の Rune より大きいかどうかを示す値を返します。Returns a value indicating whether a specified Rune is greater than another specified Rune.

GreaterThanOrEqual(Rune, Rune)

指定した Rune が、指定した別の Rune 以上かどうかを示す値を返します。Returns a value indicating whether a specified Rune is greater than or equal to another specified Rune.

Inequality(Rune, Rune)

2 つの Rune インスタンスの値が異なるかどうかを示す値を返します。Returns a value that indicates whether two Rune instances have different values.

LessThan(Rune, Rune)

指定した Rune が、指定した別の Rune より小さいかどうかを示す値を返します。Returns a value indicating whether a specified Rune is less than another specified Rune.

LessThanOrEqual(Rune, Rune)

指定した Rune が、指定したもう 1 つの Rune 以下であるかどうかを示す値を返します。Returns a value indicating whether a specified Rune is less than or equal to another specified Rune.

適用対象