CharCode に設定できる値の範囲は非対称であり、短整数型 (Short 型 (Visual Basic)) と整数型 (整数型 (Integer) (Visual Basic)) の間にあるストレージ範囲の違いがこれによって吸収されます。たとえば、-29183 は Short 型の値ですが、+36353 は Integer 型の値です。これにより、Visual Basic 6.0 との互換性も容易になります。
Chr は、System.Text 名前空間の Encoding クラスを使って、現在のスレッドが 1 バイト文字セット (SBCS) と 2 バイト文字セット (DBCS) のどちらを使用するのかを判断します。それに基づいて、CharCode を適切なセットのコード ポイントとして受け取ります。SBCS 文字の範囲は 0 ~ 255 で、DBCS 文字の範囲は -32768 ~ 65535 です。
返される値は、System.Globalization 名前空間にある TextInfo クラスの ANSICodePage プロパティに含まれている現在のスレッドのコード ページによって異なります。ANSICodePage を取得するには、System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage を指定します。
ChrW は、CharCode を Unicode のコード ポイントとして受け取ります。コードの範囲は、文化や現在のスレッドに対するコード ページの設定には依存しません。-32768 ~ -1 の範囲の値は、+32768 ~ +65535 の範囲の値と同じように扱われます。
0 ~ 31 の範囲の値は、標準の ASCII コードと同じで表示できません。たとえば、Chr(10) はライン フィード文字を返します。
メモ : |
|---|
旧バージョンの Visual Basic に含まれる ChrB 関数は、1 バイト文字を返します。これは主に、2 バイト文字セット (DBCS) アプリケーションで文字列を変換するために使用します。Visual Basic および .NET Framework のすべての文字列は Unicode で、ChrB はサポートされていません。 |