この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Char 構造体

更新 : 2010 年 12 月

Unicode 文字を表します。

名前空間:  System
アセンブリ :  mscorlib (mscorlib.dll 内)

[ComVisibleAttribute(true)]
public struct Char : IComparable, IConvertible, 
	IComparable<char>, IEquatable<char>

Char 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートCompareTo(Char)指定した Char オブジェクトとこのインスタンスを比較し、指定した Char 値と比べて、このインスタンスの並べ替え順序での位置が前か、後か、または同じかを示す整数を返します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートCompareTo(Object)指定したオブジェクトとこのインスタンスを比較し、指定したオブジェクトと比べて、このインスタンスの並べ替え順序での位置が前か、後か、または同じかを示す整数を返します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートEquals(Char)このインスタンスが、指定した Char オブジェクトと等しいかどうかを示す値を返します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートEquals(Object)対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (ValueType.Equals(Object) をオーバーライドします。)
プロテクト メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートFinalize Object がガベージ コレクションにより収集される前に、オブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetHashCodeこのインスタンスのハッシュ コードを返します。 (ValueType.GetHashCode() をオーバーライドします。)
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetNumericValue(Char)指定された Unicode の数字を倍精度浮動小数点数に変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetNumericValue(String, Int32)指定した文字列の指定位置にある Unicode の数字を倍精度浮動小数点数に変換します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetTypeCode Char 値型の TypeCode を返します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetUnicodeCategory(Char)指定した Unicode 文字を UnicodeCategory 値のいずれかで識別されるグループに分類します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートGetUnicodeCategory(String, Int32)指定した文字列の指定位置にある文字を UnicodeCategory 値のいずれかで識別されるグループに分類します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsControl(Char)指定した Unicode 文字が、制御文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsControl(String, Int32)指定した文字列の指定位置にある文字が制御文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsDigit(Char)指定した Unicode 文字が、10 進数の数字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsDigit(String, Int32)指定した文字列の指定位置にある文字が 10 進数の数字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLetter(Char)指定した Unicode 文字が Unicode 文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLetter(String, Int32)指定した文字列の指定位置にある文字が、Unicode 文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLetterOrDigit(Char)指定した Unicode 文字が文字または 10 進数の数字なのかどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLetterOrDigit(String, Int32)指定した文字列の指定位置にある文字が文字または 10 進数の数字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLower(Char)指定した Unicode 文字が小文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsLower(String, Int32)指定した文字列の指定位置にある文字が、小文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsNumber(Char)指定された Unicode 文字が数字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsNumber(String, Int32)指定した文字列の指定位置にある文字が数字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsPunctuation(Char)指定した Unicode 文字が区切り記号かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsPunctuation(String, Int32)指定した文字列の指定位置にある文字が区切り記号かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSeparator(Char)指定した Unicode 文字が区切り文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSeparator(String, Int32)指定した文字列の指定位置にある文字が区切り文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSurrogate(Char)指定した文字がサロゲート コード ポイントを持つかどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSurrogate(String, Int32)指定した文字列の指定位置にある文字がサロゲート コード ポイントを持つかどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSurrogatePair(Char, Char)指定された 2 つの Char オブジェクトがサロゲート ペアであるかどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSurrogatePair(String, Int32)文字列中の指定された位置で互いに隣接する 2 つの Char オブジェクトがサロゲート ペアであるかどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSymbol(Char)指定した Unicode 文字が記号かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsSymbol(String, Int32)指定した文字列の指定位置にある文字が記号かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsUpper(Char)指定した Unicode 文字が大文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsUpper(String, Int32)指定した文字列の指定位置にある文字が大文字かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsWhiteSpace(Char)指定した Unicode 文字が空白かどうかを示します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートIsWhiteSpace(String, Int32)指定した文字列の指定位置にある文字が空白かどうかを示します。
プロテクト メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートMemberwiseClone 現在の Object の浅いコピーを作成します。 (Object から継承されます。)
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToLower(Char)Unicode 文字の値をそれと等価な小文字に変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToLower(Char, CultureInfo)指定したカルチャ固有の書式情報を使用して、指定した Unicode 文字の値をそれと等価な小文字へ変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToLowerInvariantインバリアント カルチャの大文字と小文字の規則を使用して、Unicode 文字の値を対応する小文字表現に変換します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートToString()このインスタンスの値を、それと等価の文字列形式に変換します。 (ValueType.ToString() をオーバーライドします。)
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToString(Char)指定した Unicode 文字をそれと等価な文字列形式に変換します。
パブリック メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートToString(IFormatProvider)指定したカルチャ固有の書式情報を使用して、このインスタンスの値をそれと等価な文字列形式に変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToUpper(Char)Unicode 文字の値をそれと等価な大文字に変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToUpper(Char, CultureInfo)指定したカルチャ固有の書式情報を使用して、指定した Unicode 文字の値をそれと等価な大文字へ変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートToUpperInvariantインバリアント カルチャの大文字と小文字の規則を使用して、Unicode 文字の値を対応する大文字表現に変換します。
パブリック メソッド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートTryParse指定した文字列の値をそれと等価な Unicode 文字に変換します。 リターン コードは、変換が成功したか失敗したかを示します。
このページのトップへ

  名前説明
パブリック フィールド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートMaxValue Char の最大有効値を表します。 このフィールドは定数です。
パブリック フィールド静的メンバーSilverlight for Windows Phone によるサポートXbox 360 によるサポートMinValue Char の最小有効値を表します。 このフィールドは定数です。
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToBooleanインフラストラクチャ。 メモ : この変換はサポートされていません。 変換を試みると、InvalidCastException がスローされます。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToByteインフラストラクチャ。 このメンバーの説明については、ToByte のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToCharインフラストラクチャ。 このメンバーの説明については、IConvertible.ToChar のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToDateTimeインフラストラクチャ。 メモ : この変換はサポートされていません。 変換を試みると、InvalidCastException がスローされます。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToDecimalインフラストラクチャ。 メモ : この変換はサポートされていません。 変換を試みると、InvalidCastException がスローされます。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToDoubleインフラストラクチャ。 メモ : この変換はサポートされていません。 変換を試みると、InvalidCastException がスローされます。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToInt16インフラストラクチャ。 このメンバーの説明については、ToInt16 のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToInt32インフラストラクチャ。 このメンバーの説明については、ToInt32 のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToInt64インフラストラクチャ。 このメンバーの説明については、ToInt64 のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToSByteインフラストラクチャ。 このメンバーの説明については、ToSByte のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToSingleインフラストラクチャ。 メモ : この変換はサポートされていません。 変換を試みると、InvalidCastException がスローされます。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToTypeインフラストラクチャ。 このメンバーの説明については、IConvertible.ToType のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToUInt16インフラストラクチャ。 このメンバーの説明については、ToUInt16 のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToUInt32インフラストラクチャ。 このメンバーの説明については、ToUInt32 のトピックを参照してください。
明示的なインターフェイス実装プライベート メソッドSilverlight for Windows Phone によるサポートXbox 360 によるサポートIConvertible.ToUInt64インフラストラクチャ。 このメンバーの説明については、ToUInt64 のトピックを参照してください。
このページのトップへ

.NET Framework では、Char 構造体を使用して Unicode 文字を表現します。 Unicode Standard では、それぞれの Unicode 文字に対し、重複しない 21 ビットのスカラー値 (コード ポイント) を割り当て、このコード ポイントを 1 つ以上の 16 ビット値のシーケンスにエンコードする方法を示す UTF-16 エンコーディング形式を定義しています。 各 16 ビット値の範囲は 16 進数の 0x0000 から 0xFFFF までであり、Char 構造体に格納されます。 Char オブジェクトの値は、対応する 16 ビットの数値 (序数) です。

Char オブジェクト、Unicode 文字、および文字列

String オブジェクトは、テキスト文字列を表す Char 構造体のシーケンシャル コレクションです。 ほとんどの Unicode 文字は、単一の Char オブジェクトで表現できますが、基本文字、サロゲート ペア、組み合わせ文字シーケンスとしてエンコードされる文字については、複数の Char オブジェクトを使って表現されます。 そのため、String オブジェクト内の 1 つの Char 構造体が、必ずしも単一の Unicode 文字に対応するとは限りません。

複数の 16 ビット コード ポイントは、以下の場合に 1 つの Unicode 文字を表すために使用されます。

  • グリフ。単一文字で構成される場合と、基本文字に続けて 1 つまたは複数の文字を組み合わせて構成される場合とがあります。 たとえば、ä という文字は、コード ポイントが U+0061 である Char オブジェクトと、その後に続く、コード ポイントが U+0308 である Char オブジェクトとによって表されます。 (文字 ä は、コード ポイント U+00E4 を持つ単一の Char オブジェクトによって定義することもできます。)次の例では、文字 ä が 2 つの Char オブジェクトで構成されていることを示します。

    
    using System;
    
    public class Example
    {
       public static void Demo(System.Windows.Controls.TextBlock outputBlock)
       {
          char[] chars = { '\u0061', '\u0308' };
          string strng = new String(chars);
          outputBlock.Text += strng + Environment.NewLine;
       }
    }
    // The example produces the following output:
    //       ä
    
    
    
  • Unicode 基本多言語面 (BMP) 以外の文字。 Unicode は、16 面に加えて、平面の 0 を表す BMP をサポートしています。 Unicode コード ポイントは UTF-32 で、面を含んだ 21 ビット値によって表現されます。 たとえば、U+1D160 は、8 分音符文字を表します。 UTF-16 エンコーディングには 16 ビットしかないため、BMP の外側の文字は、UTF-16 ではサロゲート ペアとして表現されます。 たとえば、8 分音符文字 U+1D160 は、UTF-16 では、U+D834 U+DD60 に相当します。 U+D834 は上位サロゲートです。上位サロゲートの範囲は U+D800 ~ U+DBFF です。 U+DD60 は下位サロゲートです。下位サロゲートの範囲は U+DC00 ~ U+DFFF です。

複数の Char オブジェクトによって単一の文字が表現される場合もあるため、言語コンテンツの表現と解析には、個々の文字ではなく、文字列を使用することをお勧めします。

機能

Char 構造体には、Char オブジェクトを比較したり、現在の Char オブジェクトの値を別の型のオブジェクトに変換したりするメソッドや、Char オブジェクトの Unicode カテゴリを判別するメソッドが用意されています。

  • Char オブジェクトを比較するには、CompareTo メソッドおよび Equals メソッドを使用します。

  • 文字の Unicode カテゴリを取得するには、GetUnicodeCategory メソッドを使用します。 文字が特定の Unicode カテゴリ (数字、アルファベット、区切り記号、制御文字など) に属しているかどうかを確認するには、IsControlIsDigitIsLetterIsLetterOrDigitIsLowerIsNumberIsPunctuationIsSeparatorIsSurrogateIsSurrogatePairIsSymbolIsUpperIsWhiteSpace の各メソッドを使用します。

  • 数値を表す Char オブジェクトを数値型に変換するには GetNumericValue メソッドを使用します。 文字列内の文字を Char オブジェクトに変換するには、TryParse を使用します。 Char オブジェクトを String オブジェクトに変換するには、ToString を使用します。

  • Char オブジェクトの大文字と小文字を変更するには、ToLower メソッドおよび ToUpper メソッドを使用します。

インターフェイスの実装

この型は、IConvertible インターフェイス、IComparable インターフェイス、および IComparable<T> インターフェイスを実装しています。 この型の明示的な IConvertible インターフェイス メンバーの実装の代わりに、Convert クラスを使用します。

Char のメソッドのいくつかを次の例に示します。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      char chA = 'A';
      char ch1 = '1';
      string str = "test string";

      outputBlock.Text += chA.CompareTo('B') + "\n";			// Output: "-1" (meaning 'A' is 1 less than 'B')
      outputBlock.Text += chA.Equals('A') + "\n";				// Output: "True"
      outputBlock.Text += Char.GetNumericValue(ch1) + "\n";	// Output: "1"
      outputBlock.Text += Char.IsControl('\t') + "\n";		// Output: "True"
      outputBlock.Text += Char.IsDigit(ch1) + "\n";			// Output: "True"
      outputBlock.Text += Char.IsLetter(',') + "\n";			// Output: "False"
      outputBlock.Text += Char.IsLower('u') + "\n";			// Output: "True"
      outputBlock.Text += Char.IsNumber(ch1) + "\n";			// Output: "True"
      outputBlock.Text += Char.IsPunctuation('.') + "\n";	// Output: "True"
      outputBlock.Text += Char.IsSeparator(str, 4) + "\n";	// Output: "True"
      outputBlock.Text += Char.IsSymbol('+') + "\n";			// Output: "True"
      outputBlock.Text += Char.IsWhiteSpace(str, 4) + "\n";	// Output: "True"
      outputBlock.Text += Char.ToLower('M') + "\n";			// Output: "m"
      outputBlock.Text += 'x'.ToString() + "\n";				// Output: "x"
   }
}


Silverlight

サポート対象 : 5、4、3

Silverlight for Windows Phone

サポート対象 : Windows Phone OS 7.1、Windows Phone OS 7.0

XNA Framework

サポート対象 : Xbox 360、Windows Phone OS 7.0

Silverlight でサポートされるオペレーティング システムの詳細については、「サポートされているオペレーティング システムとブラウザー」を参照してください。

この型のすべてのメンバーはスレッド セーフです。 インスタンスの状態を変更するように見えるメンバーは、実際には新しい値を使用して初期化された新しいインスタンスを返します。 他の型と同じように、確実なスレッド セーフを実現するには、この型のインスタンスを含む共有変数の読み取りと書き込みをロックによって保護する必要があります。

Date

[履歴]

Reason

2010 年 12 月

Char オブジェクトと Unicode 文字の違いについての情報を追加しました。

情報の拡充

コミュニティの追加

追加
表示: