変数は「名前付きの引き出し」
変数とは、データを一時的にしまっておく引き出しです。

引き出しには名前、つまりラベルを貼ることができます。
その名前を使って、後から中身を取り出したり、別の中身に入れ替えたりできます。
例えば、次のコードを見てみましょう。
int age = 25;
これは、次のように考えると分かりやすいです。
int→ 引き出しの種類、整数専用の引き出しage→ 引き出しに貼るラベル、名前25→ 引き出しにしまう中身
つまり、
int age = 25;
は、
ageという名前の、整数専用の引き出しを用意して、そこに25をしまう
という意味になります。

なぜ「型」が必要なのか
C#では、変数を作るときに「型」を指定します。
int age = 25;
string name = "佐藤";
ここでいう型とは、引き出しの種類のことです。
例えば、現実の引き出しでも、
- 靴下を入れる引き出し
- 書類を入れる引き出し
- 工具を入れる引き出し
のように、用途ごとに分かれていることがあります。
靴下専用の引き出しに、いきなり本を入れたら変ですよね。
書類専用の引き出しに、食べ物を入れるのも不自然です。
プログラムでも同じです。
整数専用の引き出しには整数を入れます。
文字列専用の引き出しには文字列を入れます。
そのルールがあることで、プログラムが想定外のデータを扱ってしまうのを防げます。
例えば、次のコードはエラーになります。
int number = "こんにちは"; // エラー
int は整数専用の引き出しです。
そこに "こんにちは" という文字列を入れようとしているため、C#はエラーにしてくれます。
これは面倒なルールに見えるかもしれません。
しかし、間違った種類のデータを早い段階で見つけてくれる、ありがたい仕組みでもあります。
よく使う型を「引き出しの中身」で整理する
C#でよく使う型を、引き出しのイメージで整理すると次のようになります。
| 型 | 中身のイメージ | 例 |
|---|---|---|
int | 整数、小数点なしの数専用の引き出し | 10, -5, 2026 |
double | 小数を含む数専用の引き出し | 3.14, 98.6 |
decimal | お金など、誤差を避けたい数値用の引き出し | 1200.5m, 0.80m |
string | 文章や文字列専用の引き出し | "こんにちは" |
char | 1文字だけ入る小さな引き出し | 'A' |
bool | true か false の2択しか入らない引き出し | true, false |
例えば、年齢や人数のように小数点が出ないものは int が向いています。
int age = 25;
int count = 10;
一方、平均点や身長のように小数が出る可能性があるものは double を使うことがあります。
double average = 82.5;
double height = 171.3;
ただし、お金の計算では注意が必要です。
実務で金額を正確に扱いたい場合は、double ではなく decimal を使うことが多いです。
decimal price = 1200.5m;
「=」は「等しい」ではなく「しまう」
初学者がつまずきやすいポイントの一つが、= の意味です。
数学では、= は「等しい」という意味で使います。
しかし、C#などのプログラムでは、= は多くの場合、右側の値を左側の変数にしまうという意味です。
int age = 25;
これは、
ageと25が等しい
というよりも、
25をageという引き出しにしまう
と考えた方が分かりやすいです。
さらに、次のように中身を入れ替えることもできます。
int age = 25;
age = 26;
この場合、最初は age の中に 25 が入っています。
その後、age = 26; によって、引き出しの中身が 26 に入れ替わります。
つまり、変数は「一度入れたら終わり」ではありません。
必要に応じて、中身を更新できます。
中身は変えられるが、引き出しの種類は変えられない
変数の中身は、後から入れ替えることができます。
int score = 70;
score = 90;
これは問題ありません。
score は整数専用の引き出しで、最初は 70 が入っています。
その後、90 に入れ替えています。
しかし、整数専用の引き出しに、文字列を入れることはできません。
int score = 70;
score = "合格"; // エラー
score は int として作られた変数です。
つまり、整数専用の引き出しです。
そのため、あとから "合格" のような文字列を入れることはできません。
ここで大事なのは、次の考え方です。
変数の中身は入れ替えられる。
しかし、その変数が何用の引き出しかは、最初に決めた型のまま。
C#はこのように、型をしっかり決めて使う言語です。
このような仕組みを、静的型付けといいます。
var は「なんでも入る引き出し」ではない
C#には、次のように var を使った書き方もあります。
var score = 80;
これを見ると、
型を書いていないから、なんでも入れられるのかな?
と思うかもしれません。
しかし、そうではありません。
var は、最初に入れた中身を見て、コンパイラが型を自動で判断してくれる書き方です。
例えば、次のコードでは、80 は整数なので、C#は score を int だと判断します。
var score = 80; // int と判断される
score = 90; // OK
score = "合格"; // エラー
var を使っていても、型がなくなるわけではありません。
最初の値を見て、C#が自動で型を決めてくれているだけです。
つまり、var は「なんでも入る引き出し」ではありません。
varは、引き出しの種類をC#が自動で決めてくれる書き方
と考えると分かりやすいです。
まとめ
変数は、データを一時的にしまっておく名前付きの引き出しです。
int age = 25;
このコードは、
ageという名前の整数専用の引き出しを用意して、そこに25をしまう
という意味です。
C#では、変数を作るときに型を指定します。
型とは、引き出しの種類です。
整数を入れるなら int、小数を扱うなら double、文字列を入れるなら string のように、入れるデータに合わせて引き出しを選びます。
また、= は数学の「等しい」ではなく、プログラムでは「右側の値を左側の変数にしまう」という意味で使います。
そして、変数の中身は後から入れ替えられますが、変数の型は変えられません。
int score = 70;
score = 90; // OK
score = "合格"; // エラー
さらに、var を使うと型を書かずに変数を作れますが、型がなくなるわけではありません。
最初に入れた値を見て、C#が自動で型を判断しているだけです。
変数を理解するときは、まずは難しく考えすぎず、
変数は、名前付きの引き出し
型は、引き出しの種類=は、右側の値を左側の引き出しにしまう
この3つを押さえると、かなり理解しやすくなります。









ディスカッション
コメント一覧
まだ、コメントがありません