文字型 (Char) (Visual Basic)

更新 : 2007 年 11 月

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

解説

単独の文字を扱う場合に String のオーバーヘッドを避けるには Char データ型を使用します。複数の文字を扱う場合に、Char 要素の配列である Char() を使用することもできます。

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

Unicode 文字

Unicode の最初の 128 個のコード ポイント (0 ~ 127) は、標準の英語版キーボードの文字と記号に対応しています。これら最初の 128 個のコード ポイントは、ASCII 文字セットで定義された文字と同じです。次の 128 個のコード ポイント (128 ~ 255) は、ラテン語系のアルファベット、アクセント記号、通貨記号、分数などの特殊文字を表します。Unicodeはその他のコード ポイント (256-65535) を使用して、各言語の文字、発音符、数学記号、技術記号などのさまざまな記号を表します。

IsDigitIsPunctuation などのメソッドを Char 型の変数で使用すると、Unicode の分類を判別できます。

型変換

Visual Basic では、Char 型と数値型の直接変換は行われません。Char の値を、対応するコード ポイントを表す Integer に変換するには、Asc 関数、AscW 関数 を使用します。Integer の値を、このコード ポイントを持つ Char に変換するには、Chr 関数、ChrW 関数 を使用します。

型チェックのスイッチ (Option Strict ステートメント) がオンの場合、これが Char データ型であることを識別するために、リテラル型の文字を 1 文字の文字列に追加します。次に例を示します。

Option Strict On
Dim charVar As Char
' The following statement attempts to convert a String literal to Char.
' Because Option Strict is On, it generates a compiler error.
charVar = "Z"
' The following statement succeeds because it specifies a Char literal.
charVar = "Z"C

プログラミングのヒント

  • 負数Char は符号なしのデータ型で、負の値を表すことはできません。数値を格納するのに Char は使用しません。

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

  • 拡大Char データ型は、String に拡大されます。つまり、Char は System.OverflowException エラーにならずに String に変換できます。

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

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

参照

処理手順

方法 : unsigned 型を使用して正の整数のストレージを最適化する

方法 : 符号なしの型を使用する Windows の機能を呼び出す

概念

データ型の有効な使用方法

参照

データ型の概要 (Visual Basic)

System.Char

文字列型 (String) (Visual Basic)

データ型変換関数

変換の概要

Asc 関数、AscW 関数

Chr 関数、ChrW 関数