変数とは、一時的に、或いは恒久的にデータを保存しておける箱のようなものです。
変数にはいくつか種類があり、入れる値のサイズや、入れて置けるデータの種類が決まっ
ています。
これを、変数の種類を型と呼びます。
以下に型と、値の範囲、及び入れておけるデータを示します。
尚、ここ説明する型は元から組み込まれている型で、プログラマの手により新しい型を
作成することも無論可能です。
型名 |
Bit幅 |
範囲 |
byte |
符号無し8Bit |
0 ~ 255 |
sbyte |
符号有り8Bit |
-128 ~ 127 |
ushort |
符号無し16Bit |
0 ~ 65,535 |
short |
符号有り16Bit |
-32,768 ~ 32,767 |
uint |
符号無し32Bit |
0 ~ 4,294,967,295 |
int |
符号有り32Bit |
-2,147,483,648 ~ 2,147,483,647 |
ulong |
符号無し64Bit |
0 ~ 18,446,744,073,709,551,615 |
long |
符号有り64Bit |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float |
32Bit浮動小数点 |
-3.402823e38 ~ 3.402823e38 |
double |
64Bit浮動小数点 |
-1.79769313486232e308 ~ 1.79769313486232e308 |
decimal |
128Bit |
-79228162514264337593543950335 ~ 79228162514264337593543950335 |
char |
16 Bit Unicode 文字 |
|
string |
16 Bit Unicode 文字列 |
|
bool |
True または False |
|
object |
オブジェクト |
|
見て分かるとおり、byeからdecimal迄は数値を保存する為の変数です。
charとstringは文字専用です。
Cの経験者はアレ? と、思うかもしれません。
C#のcharは-128~127が入れられる型ではありません。
あくまでユニコード1キャラクタを格納する型です。
変数を使用するには、まず名前を定義します。
変数の型を指定した後ろに、変数の名前を記述し、最後にセミコロンをおきます。
これを変数の宣言と呼びます。
同じ型が複数ある場合、カンマで区切ることにより、複数の変数を宣言できます。
例
int Value;
int Type,Counter;
こうすると、Valueには-2,147,483,648から2,147,483,647の範囲で値を保存できます。
Valueに値を入れるには、イコールを使います。
イコールを使って、変数に値を入れることを代入と呼びます。
変数にはリテラルのほかに、他の変数も入れることが出来ます。
勿論自身を自身に代入することも可能ですが、全く意味の無いコードですね。
例 数値
int Value1;
int Value2;
Value1 = 1000; //リテラルを代入
Value2 = Value1; //変数を代入
例 文字列
char Character;
char CharacterJp;
string Text;
Character = 'a'; //一文字を代入
CharacterJp = 'あ'; //これも一文字
Text = "大往生"; //文字列を代入
char型は16Bitです。
なので、2Byte文字も入ります。C経験者は注意。
尚、変数を宣言するときに、イコールで初期化することが出来ます。
例
int Value = 0;
string Text = "";
初期化しておくと、未初期化変数の使用というミスを防ぐことが出来ます。
とはいえ、デフォルト設定では未初期化変数の使用はコンパイルエラーになるようです
が。
例
int a,b;
a = b;
この場合、aもbも未初期化変数です。
aをbで初期化しようとしていますが、bも未初期化変数。
実際に何が入っているかは分かりません。
よって、このコードの動作は不明となってしまいます。
aはbですぐに初期化することが分かっているので、aを初期化する必要はありませんが、
bは必ず初期化しておく必要があります。
例
int a,b = 0;
a = b;
こうすれば、aも、bも0が代入されることになります。
まぁ……意味の無いコードですけど。
ちなみに、どの型を使えば良いのか迷うかもしれません。
迷ったら、数値ならint、文字列ならstringをつかっておけば問題はありません。
その数値がカウンタで、1-10しか使わないからといって、切り詰める目的でbyteを使う必
要は全くありません。
但し、例えばシリアル通信を行う際、8Bit長のデータを送る為に変数を用意する、等とい
う場合はbyteをつかうべきでしょう。
最終更新:2007年09月06日 12:49