C#のデータ型(変数型と言った方が分かりやすいかもしれませんが)の一覧を表形式にしました。
MSDNのページでは、「C#とJavaの比較」といった形で紹介されています。
C#データ型一覧
短い名前(エイリアス) | 大元のクラス(.NET クラス) | 型説明 | Bit幅 | 範囲 |
---|---|---|---|---|
byte | System.Byte | 符号なし整数 | 8 | 0 ~ 255 |
sbyte | System.SByte | 符号付き整数 | 8 | -128 ~ 127 |
int | System.Int32 | 符号付き整数 | 32 | -2,147,483,648 ~ 2,147,483,647 |
uint | System.UInt32 | 符号なし整数 | 32 | 0 ~ 4294967295 |
short | System.Int16 | 符号付き整数 | 16 | -32,768 ~ 32,767 |
ushort | System.UInt16 | 符号なし整数 | 16 | 0 ~ 65535 |
long | System.Int64 | 符号付き整数 | 64 | -922337203685477508 ~ 922337203685477507 |
ulong | System.UInt64 | 符号なし整数 | 64 | 0 ~ 18446744073709551615 |
float | System.Single | 単精度浮動小数点型 | 32 | -3.402823e38 ~ 3.402823e38 |
double | System.Double | 倍精度浮動小数点型 | 64 | -1.79769313486232e308 ~ 1.79769313486232e308 |
char | System.Char | 単一 Unicode 文字 | 16 | テキストで使用される Unicode 記号1文字 |
string | System.String | 文字列 | char型Unicode 記号のコレクション | |
bool | System.Boolean | 論理型 | 8 | true または false |
decimal | System.Decimal | 29 の有効桁数で 10 進数を表現できる正確な小数または整数型 | 128 | ±1.0 × 10e − 28 ~ ±7.9 × 10e28 |
object | System.Object | 他のすべての型の基本型 |
表のタイトル順に説明します。
短い名前(エイリアス)は、通常プログラミングで利用するときの宣言用記述です。
int a;
などのように宣言に使います。
大元のクラス(.NET クラス)は、そのデータ型がどんなプロパティやメソッドを持つかを宣言している型名(一部クラス名)だと考えてください。
型説明は、どんな用途に使うかを記述しています。
Bit幅は、そのデータ型がメモリ上でどれくらいのメモリを消費するかを表します。例としてchar型なら16Bit(=2Byte)のメモリを消費します。
範囲は、数値型の場合のみの要素です。その型で宣言した変数は、どんな範囲の数値が扱えるかという意味です。
範囲の例として、1億(=100,000,000)の数を扱うことを考えてみます。
short型で宣言すると範囲が
-32,768 ~ 32,767
となってしまうため、1億という数値を扱うことができません。
int型で宣言した場合、範囲が
-2,147,483,648 ~ 2,147,483,647
までの数値を扱えるため問題ありません。
ですからこの場合は、intあるいはlongで宣言することが望ましいと言えます。
整数を使うなら、余裕をもって常にlong型で宣言しておけばいいじゃん、という考えもありますが、intは32Bit(=4Byte)のメモリ消費に対して、longは64Bit(=8Byte)と倍のメモリを消費します。
出来るだけ少ないメモリを使う方がハードにも優しいプログラムと言えます。
コメント
Byte幅ではなく、Bit幅かと思われます。
char型は16Bit(=2Byte)消費するのが正しいかと思います。
おっしゃる通りです。
Bit幅でした。
ご指摘ありがとうございます。修正しました。
mrgarita