C#では、まず「変数」と「データ型」を正しく理解することが、プログラミング全体の理解を大きく前進させます。
本記事では、C#における変数宣言の基本から、代表的なデータ型の種類と使い方までを体系的に解説します。
初心者の方がつまずきやすいポイントも丁寧に説明しますので、C#の基礎固めにぜひ役立ててください。
C#における変数とは
変数のイメージと役割

C#でいう変数とは、プログラム実行中のデータを一時的に保存しておくための「名前付きの入れ物」です。
人間が「年齢」「点数」「名前」のように意味のある名前で情報を扱いたいのと同じように、プログラム上でも意味のある名前をつけてデータを管理します。
変数には主に次のような役割があります。
- 値を一時的に記憶する
- 計算結果を保持する
- 条件分岐や繰り返し処理で利用する
このとき重要なのが「データ型」です。
データ型によって、変数に入れられる値の種類や扱い方が決まります。
変数宣言の基本構文
基本的な書き方
C#の変数宣言は、次のような構文で行います。
データ型 変数名;
または
データ型 変数名 = 初期値;
サンプルコード: 代表的な宣言例
using System;
class Program
{
static void Main()
{
// 整数型(int)の変数 age を宣言し、30で初期化
int age = 30;
// 小数を扱う double 型
double height = 172.5;
// 文字列を扱う string 型
string name = "Taro";
// 真偽値を扱う bool 型
bool isStudent = true;
// コンソールに出力
Console.WriteLine("名前: " + name);
Console.WriteLine("年齢: " + age);
Console.WriteLine("身長: " + height);
Console.WriteLine("学生かどうか: " + isStudent);
}
}
名前: Taro
年齢: 30
身長: 172.5
学生かどうか: True
ここでのポイントは、変数を使う前に必ず「型」と「名前」を宣言する必要があるという点です。
変数名のルールと注意点
C#の変数名には、主に次のルールがあります。
- 先頭は英字またはアンダースコアから始める
- 以降は英数字とアンダースコアが使用可能
- 大文字・小文字は区別される(例:
ageとAgeは別物) - 予約語(
int、classなど)は変数名として使えない
また、「何を表す変数なのか」が分かる名前をつけることがとても重要です。
例えば、n よりも studentCount のほうが、意味を理解しやすくなります。
C#の代表的なデータ型一覧
値型と参照型という2つの大きな分類
C#のデータ型は大きく値型と参照型に分けられます。

初学者のうちは「整数や小数は値型」「文字列や配列は参照型」というイメージから覚えておくと理解しやすいです。
主なデータ型の対応表
以下の表に、よく使う基本データ型を一覧でまとめます。
| 分類 | C#型名 | 別名(エイリアス) | 主な用途 | 例 |
|---|---|---|---|---|
| 整数型 | System.Int32 | int | 一般的な整数 | 0, 10, -5 |
| 整数型 | System.Int64 | long | 大きい整数 | 10000000000 |
| 整数型 | System.Byte | byte | 0〜255の小さな整数 | 0, 255 |
| 浮動小数 | System.Double | double | 一般的な小数 | 3.14, -0.5 |
| 浮動小数 | System.Single | float | メモリを節約したい小数 | 1.23f |
| 高精度小数 | System.Decimal | decimal | 金額など誤差を避けたい小数 | 1000.50m |
| 真偽値 | System.Boolean | bool | 真(true)か偽(false) | true, false |
| 文字 | System.Char | char | 1文字 | ‘A’, ‘あ’ |
| 文字列 | System.String | string | 複数文字のテキスト | “Hello”, “こんにちは” |
| 日付時刻 | System.DateTime | なし | 日付と時刻 | 2025-01-01 12:00 |
| 配列 | 例:int[] | なし | 同じ型のデータの集合 | new int[5] |
エイリアスとは、System.Int32 を int と簡単に書けるようにした別名のことです。
通常のプログラミングでは、int、string などのエイリアスを使うのが一般的です。
整数型(int, long, byteなど)
整数型の概要
整数型は、小数点を含まない数値を扱うためのデータ型です。
もっともよく使われるのはintで、32ビット(4バイト)の範囲の整数を扱えます。
代表的な整数型の違い
以下に主な整数型の違いを示します。
| 型名 | ビット数 | おおよその範囲 | 使用例 |
|---|---|---|---|
| byte | 8 | 0 ~ 255 | 色の値、フラグなど |
| int | 32 | 約 -21億 ~ +21億 | 一般的なカウンタやスコア |
| long | 64 | 非常に大きな整数 | 大きなID値、経過ミリ秒など |
整数型の宣言と利用例
using System;
class Program
{
static void Main()
{
// 一般的な整数
int score = 85;
// 大きな整数を扱う場合は long
long population = 125000000; // 日本の人口イメージ
// 0〜255の小さな整数には byte
byte level = 10;
Console.WriteLine("スコア: " + score);
Console.WriteLine("人口: " + population);
Console.WriteLine("レベル: " + level);
}
}
スコア: 85
人口: 125000000
レベル: 10
特に指定がなければ、整数はまず int を使うと覚えておくとよいです。
小数型(double, float, decimal)
小数を扱う型の選び方
小数点を含む数を扱うときは、doubleやfloat、decimalを使います。
- double
一般的な計算で最もよく使われる小数型。速度と精度のバランスがよいです。 - float
doubleよりメモリ使用量が少ない小数型。グラフィックスなど大量の数値を扱う場面で使われます。 - decimal
金額計算など誤差を極力避けたい計算に向いています。
サンプルコード: 小数型の基本
using System;
class Program
{
static void Main()
{
// 一般的な小数には double を使うことが多いです
double pi = 3.1415926535;
// float は末尾に f を付ける必要があります
float ratio = 0.75f;
// decimal は末尾に m を付けます(主に金額計算向け)
decimal price = 1980.50m;
Console.WriteLine("円周率(pi): " + pi);
Console.WriteLine("比率(ratio): " + ratio);
Console.WriteLine("価格(price): " + price);
}
}
円周率(pi): 3.1415926535
比率(ratio): 0.75
価格(price): 1980.50
迷ったら double、お金の計算なら decimalという選び方が基本です。
文字と文字列(char, string)
char型(1文字)
char型は、1文字だけを表すデータ型です。
宣言するときは'A'のようにシングルクォートで囲みます。
char grade = 'A';
char letter = 'あ';
string型(文字列)
string型は、複数の文字の並び(文字列)を表すデータ型です。
宣言するときは"Hello"のようにダブルクォートで囲みます。
サンプルコード: 文字と文字列
using System;
class Program
{
static void Main()
{
// 1文字を表す char 型
char initial = 'T';
// 複数文字を表す string 型
string name = "Tanaka Taro";
Console.WriteLine("頭文字: " + initial);
Console.WriteLine("名前: " + name);
// 文字列の長さを取得
int length = name.Length;
Console.WriteLine("名前の文字数: " + length);
}
}
頭文字: T
名前: Tanaka Taro
名前の文字数: 12
stringは参照型ですが、最もよく使うテキスト用の型ですので、頻繁に登場します。
真偽値(bool)と条件分岐
bool型の基本
bool型は、true(真) か false(偽) のどちらかしか取らないデータ型です。
条件分岐(if文など)と組み合わせて使うことで、プログラムの流れを制御します。
サンプルコード: boolとif文
using System;
class Program
{
static void Main()
{
int age = 20;
// 18歳以上なら大人とみなす
bool isAdult = (age >= 18);
Console.WriteLine("年齢: " + age);
Console.WriteLine("成人かどうか: " + isAdult);
// bool 型は if 文の条件にそのまま使えます
if (isAdult)
{
Console.WriteLine("お酒を買うことができます。");
}
else
{
Console.WriteLine("お酒を買うことはできません。");
}
}
}
年齢: 20
成人かどうか: True
お酒を買うことができます。
比較演算子(>=, == など)の結果は必ず bool 型になるため、そのまま条件として利用できます。
varと暗黙的型指定
varとは何か
C#では、varを使って暗黙的に型を指定することができます。
コンパイラが右辺の値から型を推論してくれます。
var age = 20; // int と推論される
var name = "Taro"; // string と推論される
var pi = 3.14; // double と推論される
注意点として、varは「なんでも入る型」ではなく、コンパイル時に具体的な型が決まることを理解しておく必要があります。
varの使いどころと注意点

varを使うとコードが短くなり、型名が長いときに便利ですが、むやみに使うと読みづらくなる場合もあります。
特に、右辺だけを見てもどんな型か分かりにくい場合は、明示的に型を書くほうが読みやすいコードになります。
配列と複数の値を持つ変数
配列型の基本(例:int[])
配列は、同じ型のデータをまとめて扱える入れ物です。
例えば、3人分の点数をまとめて保持したいとき、変数を3つ作る代わりに配列1つで扱うことができます。
サンプルコード: 配列の宣言と利用
using System;
class Program
{
static void Main()
{
// 整数の配列を宣言し、初期値を指定
int[] scores = { 80, 90, 75 };
// 要素へアクセス(インデックスは0から始まることに注意)
Console.WriteLine("1人目の点数: " + scores[0]);
Console.WriteLine("2人目の点数: " + scores[1]);
Console.WriteLine("3人目の点数: " + scores[2]);
// 配列の長さを取得
int length = scores.Length;
Console.WriteLine("受験者数: " + length);
}
}
1人目の点数: 80
2人目の点数: 90
3人目の点数: 75
受験者数: 3
配列も参照型に分類されますが、「同じ型のデータの並び」として理解しておけば十分です。
データ型と型変換(キャスト)の基礎
暗黙的な型変換(小さい型 → 大きい型)
C#では、情報が失われない変換は自動的に行われます。
例えば、intからdoubleへの変換は、暗黙的に行われます。
int x = 10;
double y = x; // int から double へ自動変換
明示的な型変換(キャスト)
逆に、情報が失われる可能性がある変換は、キャストと呼ばれる明示的な指定が必要です。
double a = 3.99;
// int への変換にはキャストが必要(小数部分は切り捨てられる)
int b = (int)a;
サンプルコード: 型変換の動作確認
using System;
class Program
{
static void Main()
{
int intValue = 10;
double doubleValue = intValue; // 暗黙的な変換
Console.WriteLine("intValue: " + intValue);
Console.WriteLine("doubleValue: " + doubleValue);
double pi = 3.99;
int truncated = (int)pi; // 明示的なキャスト
Console.WriteLine("pi: " + pi);
Console.WriteLine("truncated: " + truncated); // 3 になる
}
}
intValue: 10
doubleValue: 10
pi: 3.99
truncated: 3
キャストを行うときは、値がどのように変化するかを意識することが重要です。
まとめ
C#の変数宣言とデータ型は、プログラミングの土台となる非常に重要な要素です。
本記事では、変数宣言の基本構文、整数型や小数型、文字列、真偽値といった代表的なデータ型、さらにvarによる型推論や配列、型変換の基礎までを説明しました。
まずはよく使うint、double、string、boolを確実に扱えるようにし、その上で必要に応じて他の型も覚えていくと、無理なくC#の理解を深めていくことができます。
