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, 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)
継承
実装

注釈

インスタンスは、 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). 型のコンストラクターと変換演算子によって入力が検証されるため、基になるインスタンスが整形式であると仮定して、コンシューマーは Api を呼び出すことができ Rune ます。The type's constructors and conversion operators validate the input, so consumers can call the APIs assuming that the underlying Rune instance is well formed.

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

コードの場合は、型を使用することを検討してください RuneConsider 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

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

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

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

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

    return letterCount;
}

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

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

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

    return letterCount;
}

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

CountLettersInString("Hello")
// Returns 5

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

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

Osage テキストに対してこのメソッドが誤った結果を返す理由は、 char osage 文字のインスタンスがサロゲートコードポイントであるためです。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.

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

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

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

    return letterCount;
}

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

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

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

    return letterCount;
}

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

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

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

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

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

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

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

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

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

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

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

使用しない場合 RuneWhen not to use Rune

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

  • 完全一致を検索します charLooks 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:

  • 内の表示文字数をカウントします。 stringCounts 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. Runeコードは単一ので表される文字を検索するため、このコードを変更する必要はありません charThere's no need to change this code to use Rune, as the code is looking for characters that are represented by a single char.

int GetIndexOfFirstAToZ(string s)
{
    for (int i = 0; i < s.Length; i++)
    {
        char thisChar = s[i];
        if ('A' <= thisChar && thisChar <= 'Z')
        {
            return i; // found a match
        }
    }

    return -1; // didn't find 'A' - 'Z' in the input string
}

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

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

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

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

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

文字列内のインスタンスの数が、 Rune 文字列を表示するときに表示されるユーザー 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.

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

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

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

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

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

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

ArgumentException入力が有効な Unicode スカラー値を表していない場合、すべてのコンストラクターがをスローします。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 ReadOnlySpan<byte> utf-8 データを表すパラメーターを受け入れるのと同様に動作します。The Rune.DecodeFromUtf8 method operates similarly, accepting a ReadOnlySpan<byte> parameter that represents UTF-8 data. スパンの先頭ではなく、スパンの末尾から読み取る同等のメソッドがあります。There are equivalent methods to read from the end of the span instead of the beginning of the span.

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

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

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

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

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

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

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

    return span;
}

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

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

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

は、 Rune.EncodeToUtf16 Rune インスタンスをインスタンスに変換し char ます。The Rune.EncodeToUtf16 converts a Rune instance to char instances. charインスタンスを utf-16 に変換した結果として生成されるインスタンスの数を照会するには、 Rune プロパティを使用し 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);

は一連の UTF-16 文字であるため string 、次の例でも、インスタンスを 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 型は、[検索] の型と同等ではありません runeHowever, 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 」または「 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.

明示的なインターフェイスの実装

IComparable.CompareTo(Object)

現在のインスタンスを、指定したオブジェクトと比較します。Compares the current instance to the specified object.

適用対象