次の方法で共有


データ型の概要 (Visual Basic)

次の表は、Visual Basic データ型、サポートされている共通言語ランタイム型、その名目上のストレージ割り当て、およびその値の範囲を示しています。

Visual Basic の種類 共通言語ランタイム型の構造 わずかなストレージ割り当て 値の範囲
ブーリアン Boolean プラットフォームの実装に依存 True または False
Byte Byte 1 バイト 0 から 255 (符号なし)
Char (1 文字) Char 2 バイト 0 から 65535 (符号なし)
日付 DateTime 8 バイト 0001 年 1 月 1 日 0:00:00 (午前 0 時) から 9999 年 12 月 31 日午後 11:59:59
小数 Decimal 16 バイト 0 ~ +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) 小数点なし。0 から +/-7.9228162514264337593543950335、小数点以下 28 桁。

0 以外の最小の数値は +/-0.0000000000000000000000000000001 (+/-1E-28)
Double (倍精度浮動小数点) Double 8 バイト -1.79769313486231570E+308 ~ -4.94065645841246544E-324 負の値の

4.94065645841246544E-324 から 1.79769313486231570E+308 正の値の
整数 Int32 4 バイト -2,147,483,648 から 2,147,483,647 (署名済み)
Long (長整数) Int64 8 バイト -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (9.2....E+18 ) (署名済み)
オブジェクト Object (クラス) 32 ビット プラットフォームで 4 バイト

64 ビット プラットフォームで 8 バイト
任意の型を型の変数に格納できます Object
SByte SByte 1 バイト -128 から 127 (署名済み)
Short (短整数) Int16 2 バイト -32,768 から 32,767 (署名済み)
単精度 (単精度浮動小数点) Single 4 バイト 負の値の -3.4028235E+38 から -1.401298E-45

1.401298E-45 ~ 3.4028235E+38 正の値の
文字列 (可変長) String (クラス) プラットフォームの実装に依存 0 ~ 約 20 億文字の Unicode 文字
UInteger する UInt32 4 バイト 0 から 4,294,967,295 (符号なし)
ULong する UInt64 8 バイト 0 ~ 18,446,744,073,709,551,615 (1.8...E+19 ) (符号なし)
ユーザー定義 (構造体) ( ValueTypeから継承) プラットフォームの実装に依存 構造体の各メンバーには、そのデータ型によって決定される範囲があり、他のメンバーの範囲に依存しません
UShort する UInt16 2 バイト 0 から 65,535 (符号なし)

科学的表記では、"E" は 10 の累乗を表します。 したがって、3.56E+2 は 3.56 x 102 または 356 を意味し、3.56E-2 は 3.56 / 102 または 0.0356 を意味します。

テキストを含む文字列の場合は、 StrConv 関数を使用して、あるテキスト形式から別のテキスト形式に変換します。

宣言ステートメントでデータ型を指定するだけでなく、型文字を使用して、一部のプログラミング要素のデータ型を強制できます。 「 文字型」を参照してください。

メモリ消費量

基本データ型を宣言する場合、メモリ消費量が、その標準ストレージ割り当てと同じであると想定しても安全ではありません。 これは、次の考慮事項が原因です。

  • ストレージの割り当て。 共通言語ランタイムは、アプリケーションが実行されているプラットフォームの現在の特性に基づいてストレージを割り当てることができます。 メモリがいっぱいに近い場合は、宣言された要素をできるだけ密接にパックする可能性があります。 それ以外の場合は、パフォーマンスを最適化するために、メモリ アドレスを自然なハードウェア境界に合わせる場合があります。

  • プラットフォームの幅。 64 ビット プラットフォームでのストレージ割り当ては、32 ビット プラットフォームでの割り当てとは異なります。

複合データ型

構造体や配列など、複合データ型の各メンバーにも同じ考慮事項が適用されます。 型のメンバーのわずかなストレージ割り当てを単に追加するだけでは利用できません。 さらに、次のようなその他の考慮事項があります。

  • オーバーヘッド。 一部の複合型には、追加のメモリ要件があります。 たとえば、配列では、配列自体と各次元に追加のメモリが使用されます。 32 ビット プラットフォームでは、このオーバーヘッドは現在、ディメンションごとに 12 バイトと 8 バイトです。 64 ビット プラットフォームでは、この要件は 2 倍になります。

  • ストレージ レイアウト。 メモリ内のストレージの順序が宣言の順序と同じであると安全に想定することはできません。 2 バイト境界や 4 バイト境界など、バイトアラインメントに関する前提を立てることはできません。 クラスまたは構造体を定義していて、そのメンバーのストレージ レイアウトを制御する必要がある場合は、 StructLayoutAttribute 属性をクラスまたは構造体に適用できます。

オブジェクトのオーバーヘッド

基本データ型または複合データ型を参照する Object は、データ型に含まれるデータに加えて 4 バイトを使用します。

こちらも参照ください