この「C#入門シリーズ」では、C#初心者の方に向けて、実務でよく使われる文法を全12回にわたって解説していきます。
※C#開発環境の構築がまだの方は、まず以下の記事を参照してください。
【初心者向け】C#の開発環境まとめ
第1回となる今回は、C#の変数と主要なデータ型について、実務でよく使うケースを踏まえて解説していきます。
変数とは
プログラミングでは、データを一時的に保存するための入れ物を変数と呼びます。
その入れ物は「数値用」「文字用」など、入れられるデータの種類(=データ型)が決まっています。
C#では、変数を使うときに次のような書き方をします。
データ型 変数名 = 初期値;
これは、「〇〇型の変数△△を作って、□□という値を入れる」という意味です。
例えば以下は、「整数型(int)の変数 age を作って、25という値を入れる」という意味になります。
int age = 25;
このように変数を作ることを変数宣言といいますが、以下にポイントをまとめます。
- 変数名(ここではage)は、自分で自由に決めることができます。
- 初期値(
= 25
)の指定は基本的に必須で、指定しないとエラーになる場合があります。 =
は数学的な「イコール」ではなく、「右の値を左に代入する」という意味です。(※この記号は「代入演算子」と呼ばれます)
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
には様々な型を指定でき、指定した型のコレクションを生成することができます。
List<T>
の詳しい使い方については以下の記事を参照してください。
C#入門⑤|コレクション(配列・List・Dictionary)の基本
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
は「何も参照していない状態」を表し、参照型で使われる
このように、変数と型のルールを理解しておくことで、今後のプログラミングが格段にわかりやすくなります。
次回は、条件によって処理を分けたりするための基本となる「条件分岐」について解説します。