文字型 (Char) (Visual Basic)

0 から 65535 までの値の範囲の符号なし 16 ビット (2 バイト) のコード ポイントを保持します。 各コード ポイント (文字コード) は、1 つの Unicode 文字を表します。

Remarks

1 文字だけを保持する必要があり、String のオーバーヘッドを必要としない場合に、Char データ型を使用します。 場合によっては、複数の文字を保持するために、Char 要素の配列である Char() を使用できます。

Char の既定値は、コード ポイントが 0 の文字です。

Unicode 文字

Unicode の最初の 128 コード ポイント (0 ~ 127) は、標準の米国キーボードの文字と記号に対応しています。 これらの最初の 128 コード ポイントは、ASCII 文字セットで定義されているものと同じです。 2 番目の 128 コード ポイント (128 ~ 255) は、ラテン語に基づくアルファベット文字、アクセント、通貨記号、分数などの特殊文字を表します。 Unicode では、残りのコード ポイント (256-65535) を、世界全体のテキスト文字、分音記号、数学記号、技術記号などの多様な記号に使用しています。

Char 変数に対して IsDigitIsPunctuation などのメソッドを使用して、その Unicode の分類を判断できます。

型変換

Visual Basic では、Char と数値型の間で直接に変換されません。 Asc または AscW 関数を使用して、Char 値をそのコード ポイントを表す Integer に変換できます。 Chr または ChrW 関数を使用して、Integer 値をそのコード ポイントを持つ Char に変換できます。

型チェック スイッチ (Option Strict ステートメント) がオンになっている場合、リテラル型の文字を 1 文字の文字列リテラルに追加して、Char データ型として識別する必要があります。 次に例を示します。 charVar 変数への最初の代入では、Option Strict がオンになっているため、コンパイラ エラー BC30512 が生成されます。 2 つ目は、リテラル型の文字 c によって、リテラルが Char 値として識別されるため、正常にコンパイルされます。

Option Strict On

Module CharType
    Public Sub Main()
        Dim charVar As Char

        ' This statement generates compiler error BC30512 because Option Strict is On.  
        charVar = "Z"  

        ' The following statement succeeds because it specifies a Char literal.  
        charVar = "Z"c
    End Sub
End Module

プログラミングのヒント

  • 負の数値。 Char は符号なしの型であるため、負の値を表すことはできません。 いかなる場合でも、Char を使用して数値を保持しないでください。

  • 相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントとやり取りする場合、他の環境では文字型のデータ幅 (8 ビット) が異なることに注意してください。 そのようなコンポーネントに 8 ビットの引数を渡す場合は、新しい Visual Basic のコードで、Char ではなく Byte として宣言します。

  • 拡大変換。 Char データ型は、String に拡大変換されます。 つまり、CharString に変換でき、System.OverflowException は発生しません。

  • 型宣言文字。 1 文字の文字列リテラルにリテラルの型文字 C を付けると、それは Char データ型に変換されます。 Char には識別子の型文字がありません。

  • Framework のデータ型 .NET Framework において対応する型は、System.Char 構造体です。

関連項目