記事内に広告が含まれています

C#入門① | 変数とデータ型の基本

C#入門① C#入門

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;

booltrue(真)か 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 を使用しないでください。」と書かれています。

.NET コーディング規則 - C#
C# でよく使われるコーディング規則について説明します。 コーディング規則によってコードの外観に一貫性がもたらされ、コードのコピー、変更、保守が容易になります。 この記事には、ドキュメント リポジトリのコーディングのガイドラインも含まれてい...

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は「何も参照していない状態」を表し、参照型で使われる

このように、変数と型のルールを理解しておくことで、今後のプログラミングが格段にわかりやすくなります。

次回は、条件によって処理を分けたりするための基本となる「条件分岐」について解説予定です。

C#入門
hiranote

コメント

タイトルとURLをコピーしました