C#を使ったプログラミングでは、まず「変数」と「データ型」を理解することが何より重要です。
この記事では、C#の変数と主要なデータ型について、実務でよく使うケースを踏まえて解説していきます。
変数とは
プログラミングでは、データを一時的に保存するための入れ物を「変数」と呼びます。
その入れ物は「数値用」「文字用」など、入れられるデータの種類(=データ型)が決まっています。
C#では、このようにまずどんな種類のデータを入れるか(型)を先に書いてから変数を作ります。
int number = 10;
string name = "Taro";
C#は型をきちんと決めて使う言語(=静的型付言語)なので、最初に型を意識することがとても大切です。
よく使うデータ型
実務でよく使う基本的なデータ型の特徴について解説します。
int(整数型)
int count = 5;
int age = 25;
C#で数値を扱うときは、まずこのint
型を使うのが基本です。
たいていの場合はint
で問題ありませんが、より大きい範囲(約±21億以上)を扱う場合はlong
型を使うこともあります。
double / float(浮動小数点型)
double pi = 3.14159;
float ratio = 0.75f; // 末尾に「f」を付けるとfloat型になる
C#で小数を扱う際は、基本的にdouble
型を使います。
float
型はメモリ使用量が少ないといったメリットがありますが、計算の精度が落ちるので使う場面は限られます。
0.1 や 0.2 のような値は、コンピュータ内部では正確に表現できないことがあります。
金額計算などで「正確な値」が必要なときは decimal
型を使うようにしましょう(計算速度がdouble
型よりも劣るなどのデメリットはあります)
bool(論理型)
bool isLoggedIn = true;
bool isSoldOut = false;
bool
はtrue
(真)か false
(偽)のみをとる型で、条件分岐やループ処理などでよく使われます。
C#では他の言語のように if (1)
のような書き方はできません。条件式は必ず真偽値になる式を使う必要があります。
string(文字列)
string firstName = "太郎";
string greeting1 = "こんにちは、" + {firstName} + "さん!"; // こんにちは、太郎さん!
string greeting2 = $"こんにちは、{firstName}さん!"; // こんにちは、太郎さん!
文字や文章を扱うための型で、"
(ダブルクォーテーション)で囲んで表現します。
+
記号を使うことで、複数の文字列を連結することができます。
サンプルコードの3行目は文字列補間という書き方で、先頭に$
を使うと文字列の中に変数を差し込むことができます。+
記号での連結よりも可読性がよくなるので、実務では基本的にこちらを使うことをおすすめします。
文字列をループ文の中で繰り返し連結するような場合には、処理速度の観点から+
記号での連結ではなく、StringBuilder
の使用が推奨されます
DateTime(日付・時刻)
DateTime now = DateTime.Now; // 現在日時を取得
DateTime nextWeek = now.AddDays(7); // 現在日時に7日加算
string formatted = nextWeek.ToString("yyyy/MM/dd"); // 2025/04/14のような形式の文字列に変換
DateTime
は日付や時刻を表すための型です。
DateTime.Now
で現在の日付と時刻を取得できます。
他にも様々な機能が用意されており、日付の操作も簡単に行うことができます。
.ToString("yyyy/MM/dd")
のように書式を指定して文字列に変換することも可能です。
List<T>(可変長リスト)
List<int> numbers = new List<int> { 1, 2, 3 };
numbers.Add(4);
List<string> names = new List<string> { "taro", "jiro" };
List<T>
は複数の値をまとめて扱うことができ、あとからデータを自由に追加・削除できる便利な型です。
配列(int[]
など)よりも柔軟に使えるので、実務ではListがよく使われます。
ちなみにList<T>
のT
は「Type(型)」の頭文字で、型が入るという意味です。
サンプルコードのようにT
には様々な型を指定でき、指定した型のコレクションを生成することができます。
var(型推論)とは?
var
は、変数を宣言するときに型を省略して書ける便利なキーワードです。
これは型推論という機能で、C#のコンパイラが右辺の値を見て自動的に型を推論してくれます。
var name = "Taro"; // string型と推論される
var list = new List<string>(); // List<string>型と推論される
推論された型が何かを確認したい場合は、変数名にカーソルを合わせると型の内容が表示されます。

C#のvar
は「型推論」のためのキーワードであり、JavaScriptのvar
とは別物です。
C#では型が自動的に決まるので、あとから別の型を代入することはできません。
実務ではvar
を使うことが多いですが、右辺の型が読み手に伝わりにくい場合などは、明示的に型を書くことをおすすめします。
double score = CalculateScore(); // メソッド名からは戻り値がわかりにくい
Microsoftのコーディング規則にも「代入の右側から型が明らかではない場合、var を使用しないでください。」と書かれています。

nullとは?
C#の型は、変数が扱うデータの種類によって「値型」と「参照型」に分けられます。
値型(int、bool、DateTimeなど)は値そのものを持ち、参照型(string、Listなど)はデータがある場所(アドレス)を指し示します。
null
とは、参照型の変数がどこも指していない=中身がない状態を表します。
この状態で変数の機能(プロパティやメソッド)にアクセスしようとすると、NullReferenceException
というエラーが発生します。

エラーを防ぐためには、以下のようにnullであるかどうかを事前にチェックすることが重要です。
string text = null;
if (text != null)
{
Console.WriteLine(text.Length);
}
なお、値型(int
, bool
, DateTime
など)はそのままではnullを取れませんが、int?
のように書くことでnullを許容できます(Nullable型)。こちらについては、シリーズ後半で詳しく解説予定です。
まとめ
今回は、C#でプログラミングを始めるうえで欠かせない「変数」と「データ型」について解説しました。
- 変数は「名前をつけてデータを保存する入れ物」
- C#では変数を使うときに、あらかじめ「どんな種類のデータを扱うか(=型)」を決める必要がある
- よく使う型には、int(整数)、double(小数)、bool(真偽値)、string(文字列)、DateTime(日付)、List(リスト)などがある
var
を使えば型を省略して書けるが、使いどころには注意が必要null
は「何も参照していない状態」を表し、参照型で使われる
このように、変数と型のルールを理解しておくことで、今後のプログラミングが格段にわかりやすくなります。
次回は、条件によって処理を分けたりするための基本となる「条件分岐」について解説予定です。