C#プログラムの作り方入門|初心者でもわかる基本構造・書き方・実行手順

はじめに

C#プログラムを作れるようになると、コンソールアプリ、Windowsアプリ、Webアプリ、業務システム、ゲームなど、さまざまなソフトウェア開発に挑戦できます。C#は文法が比較的整理されており、Visual Studioや.NET SDKなどの開発環境も充実しているため、プログラミング初心者にも学びやすい言語です。

この記事では、C#プログラムの基本構造、書き方、実行手順、よくあるエラー、練習方法までを初心者向けに順番に解説します。最初は難しく感じるかもしれませんが、「コードを書く」「実行する」「結果を見る」という流れを何度も繰り返すことで、少しずつ理解できるようになります。

1. C#プログラムとは?初心者が最初に知るべき基礎知識

C#プログラムとは、C#というプログラミング言語で書かれた命令の集まりです。コンピューターは人間の言葉をそのまま理解できないため、「画面に文字を表示する」「数値を計算する」「ボタンが押されたら処理を行う」といった命令を、C#の文法に従って書きます。

C#はMicrosoftが中心となって開発しているプログラミング言語で、.NETという開発基盤と一緒に使われることが一般的です。.NETはWindows、macOS、Linuxで利用できる無料のオープンソースなクロスプラットフォーム開発基盤です。

1-1. C#でできること|アプリ・Web・ゲーム開発の主な用途

C#では、さまざまな種類のプログラムを作成できます。たとえば、学習の最初によく使われるコンソールアプリ、業務で使うWindowsデスクトップアプリ、WebサイトやWeb API、スマートフォンアプリ、ゲームなどです。

特にゲーム開発ではUnityでC#が使われることが多く、Web開発ではASP.NET Coreを使ってWebアプリケーションを作れます。業務システムの開発でもC#は広く使われており、データベースと連携するアプリや社内ツールの作成にも向いています。

1-2. C#と.NETの関係をわかりやすく解説

C#はプログラムを書くための「言語」で、.NETはそのC#プログラムを作成・実行するための「土台」です。たとえるなら、C#が文章を書くための日本語や英語にあたり、.NETはその文章を印刷したり配布したりするための仕組みに近いものです。

C#だけを覚えても、実際にプログラムを動かすには実行環境が必要です。.NET SDKをインストールすると、C#プログラムを作成するためのテンプレート、ビルド機能、実行コマンドなどが使えるようになります。.NETの公式ダウンロードページでは、Windows、macOS、Linux向けのSDKやランタイムが提供されています。

1-3. C#プログラムを学ぶメリット

C#プログラムを学ぶメリットは、基礎から応用まで幅広く使えることです。最初は画面に文字を表示するだけの小さなプログラムから始め、慣れてきたらファイル操作、データベース連携、Webアプリ、ゲーム開発へと学習範囲を広げられます。

また、C#は型の仕組みがしっかりしているため、間違いに気づきやすい言語です。たとえば、数値を入れる変数に文字列を入れようとするとエラーが出ます。初心者にとってエラーは怖いものに見えますが、正しく使えばミスを教えてくれる大切な手がかりになります。

1-4. 初心者がつまずきやすいポイント

初心者がC#プログラムでつまずきやすいポイントは、文法の細かいルールです。セミコロンを忘れる、波かっこの対応がずれる、変数名を間違える、全角文字を使ってしまうなど、小さなミスでプログラムは動かなくなります。

また、C#では「class」「method」「namespace」「using」など、最初は聞き慣れない言葉が出てきます。すべてを一度に理解しようとせず、まずは「どこに何を書くのか」「どう実行するのか」を覚えることが大切です。

2. C#プログラムを作る前に準備するもの

C#プログラムを作るには、コードを書くためのエディターや統合開発環境、プログラムをビルド・実行するための.NET SDKが必要です。初心者の場合は、環境構築で迷いやすいため、最初はシンプルな構成を選ぶと学習しやすくなります。

2-1. 開発に必要なソフトと環境

C#開発に必要なものは、主に次の3つです。

1つ目は、C#コードを書くためのエディターです。代表的なものにはVisual StudioとVisual Studio Codeがあります。2つ目は、C#プログラムを作成・実行するための.NET SDKです。3つ目は、作成したプログラムを保存する作業フォルダーです。

初心者は、まずコンソールアプリから始めるのがおすすめです。コンソールアプリは黒い画面やターミナルに文字を表示するシンプルなプログラムで、C#の基本文法を学ぶのに向いています。

2-2. Visual StudioとVisual Studio Codeの違い

Visual Studioは、C#開発に必要な機能がまとまった統合開発環境です。プロジェクト作成、コード補完、デバッグ、画面設計などを1つのソフトで行えます。初心者がWindows環境でC#を学ぶ場合は、Visual Studioを使うと始めやすいでしょう。Microsoftの公式チュートリアルでも、Visual Studioを使ってC#コンソールアプリを作成・実行する手順が紹介されています。

一方、Visual Studio Codeは軽量なコードエディターです。C# Dev Kitなどの拡張機能を追加することで、C#開発をしやすくできます。C# Dev Kitは、Windows、macOS、Linux上のVisual Studio CodeでC#開発体験を強化する拡張機能です。

簡単にいうと、Visual Studioは「最初から多機能な開発環境」、Visual Studio Codeは「必要な機能を拡張して使う軽量エディター」です。

2-3. .NET SDKのインストール方法

.NET SDKをインストールするには、.NETの公式ダウンロードページから自分のOSに合ったインストーラーを入手します。Windows、macOS、Linux向けにSDKが提供されているため、使用している環境に合わせて選びます。

インストール後は、ターミナルやコマンドプロンプトで次のコマンドを入力します。

C#
dotnet --version

バージョン番号が表示されれば、.NET SDKのインストールは完了しています。エラーが表示される場合は、インストールが正しく完了していないか、パスの設定が反映されていない可能性があります。

2-4. 初心者におすすめの開発環境

初心者におすすめなのは、WindowsならVisual Studio、macOSやLinuxならVisual Studio Codeと.NET SDKの組み合わせです。WindowsでVisual Studioを使う場合、C#開発に必要なテンプレートや実行機能がそろっているため、環境構築で迷いにくいというメリットがあります。

ただし、コマンド操作も学びたい場合は、Visual Studio Codeと.NET CLIを使う方法もおすすめです。dotnet newdotnet runなどのコマンドを覚えると、C#プログラムがどのように作成され、実行されるのかを理解しやすくなります。

3. C#プログラムの基本構造

C#プログラムには基本的な形があります。最初は意味がわからなくても、全体の構造を見慣れることが大切です。ここでは、C#の基本構造を初心者向けに分解して見ていきます。

3-1. C#プログラムの全体像

C#の基本的なコンソールプログラムは、次のような形で書けます。

C#
using System;

namespace SampleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}

このプログラムを実行すると、画面に「Hello World」と表示されます。C#プログラムでは、命令を上から順番に書き、必要に応じてクラスやメソッドにまとめていきます。

なお、近年の.NETでは、より短い形式で次のように書くこともできます。

C#
Console.WriteLine("Hello World");

初心者のうちは、まず短い書き方で実行に慣れ、その後でnamespaceclassMainメソッドの意味を学ぶと理解しやすくなります。

3-2. namespace・class・Mainメソッドの役割

namespaceは、クラスを整理するための名前空間です。大きなプログラムでは多くのクラスを使うため、関連するクラスをグループ分けする目的で使います。

classは、処理やデータをまとめるための設計図のようなものです。C#では多くの処理をクラスの中に書きます。

Mainメソッドは、C#プログラムの開始地点です。プログラムを実行すると、基本的にはMainメソッドの中に書かれた処理から動き始めます。

C#
static void Main(string[] args)
{
Console.WriteLine("プログラム開始");
}

このように、Mainメソッドの中に書いた命令が実行されます。

3-3. using文の意味

using文は、よく使う機能を簡単に呼び出すための宣言です。たとえば、Console.WriteLineを使うには、従来の書き方では次のようにSystem名前空間を利用します。

C#
using System;

using System;を書くことで、System.Console.WriteLineと毎回書かなくても、Console.WriteLineと短く書けます。

C#
Console.WriteLine("こんにちは");

初心者は、最初のうちは「usingは便利な機能を使うための準備」と理解しておけば問題ありません。

3-4. 文末のセミコロンや波かっこの基本ルール

C#では、多くの命令の最後にセミコロンを付けます。

C#
Console.WriteLine("こんにちは");
int age = 20;

セミコロンを忘れると、コンパイルエラーになります。また、波かっこ{ }は処理のまとまりを表します。

C#
if (age >= 20)
{
Console.WriteLine("成人です");
}

波かっこの開始と終了が対応していないと、エラーの原因になります。コードを書くときは、波かっこの位置とインデントをそろえることが大切です。

4. はじめてのC#プログラムを書いてみよう

ここでは、実際にC#プログラムを書いてみます。最初に作るのは、画面に文字を表示するだけのシンプルなコンソールアプリです。

4-1. コンソールアプリを作成する手順

コマンドラインでコンソールアプリを作成する場合は、まず作業用フォルダーを作成します。次に、そのフォルダーで次のコマンドを実行します。

C#
dotnet new console

dotnet newコマンドは、指定したテンプレートをもとに.NETプロジェクトを作成するコマンドです。公式ドキュメントでも、テンプレートからプロジェクトやファイルを作成するコマンドとして説明されています。

コマンドを実行すると、C#プログラムに必要なファイルが自動的に作成されます。代表的なファイルはProgram.csと、プロジェクト設定が書かれた.csprojファイルです。

4-2. Hello Worldプログラムの書き方

Program.csを開き、次のように書きます。

C#
Console.WriteLine("Hello World");

これは、C#プログラムの中でも最も基本的な例です。Console.WriteLineは、コンソール画面に文字を表示して改行する命令です。

日本語を表示したい場合は、次のように書けます。

C#
Console.WriteLine("こんにちは、C#プログラム!");

実行すると、画面に「こんにちは、C#プログラム!」と表示されます。

4-3. Console.WriteLineの使い方

Console.WriteLineは、文字列だけでなく数値や計算結果も表示できます。

C#
Console.WriteLine(100);
Console.WriteLine(10 + 20);
Console.WriteLine("合計は" + 30 + "です");

変数の値を表示することもできます。

C#
int score = 80;
Console.WriteLine(score);

文字列の中に変数を埋め込みたい場合は、文字列補間を使うと読みやすくなります。

C#
int score = 80;
Console.WriteLine($"点数は{score}点です");

C#プログラムでは、実行結果を確認するためにConsole.WriteLineをよく使います。初心者のうちは、変数の中身や処理の流れを確認する目的でも活用できます。

4-4. 書いたコードを保存する方法

C#のコードは、通常.csという拡張子のファイルに保存します。コンソールアプリでは、最初からProgram.csというファイルが作られることが多いため、このファイルにコードを書いて保存します。

Visual Studioを使っている場合は、保存ボタンやCtrl + Sで保存できます。Visual Studio Codeでも同じようにCtrl + S、macOSではCommand + Sで保存できます。

コードを変更したら、実行する前に必ず保存しましょう。保存していない状態で実行すると、変更前のコードが実行されてしまう場合があります。

5. C#プログラムの実行手順

C#プログラムは、書いただけでは動きません。ビルドや実行という手順を通して、コンピューターが処理できる形に変換し、結果を確認します。

5-1. Visual Studioで実行する方法

Visual StudioでC#プログラムを実行する場合は、プロジェクトを開いた状態で実行ボタンを押します。通常は画面上部にある緑色の再生ボタンをクリックするか、F5キーを押します。

デバッグなしで実行する場合は、Ctrl + F5を使うこともあります。デバッグありで実行すると、ブレークポイントを使って処理を途中で止めたり、変数の値を確認したりできます。

初心者は、まず実行ボタンでプログラムを動かし、慣れてきたらデバッグ機能を使うとよいでしょう。

5-2. コマンドラインで実行する方法

コマンドラインで実行する場合は、プロジェクトフォルダーに移動してから次のコマンドを入力します。

C#
dotnet run

このコマンドを実行すると、C#プログラムがビルドされ、その後に実行されます。コマンドラインで実行する方法を覚えておくと、Visual Studio以外の環境でもC#プログラムを動かせるようになります。

5-3. dotnet runコマンドの使い方

dotnet runは、ソースコードからアプリケーションを実行するための便利なコマンドです。公式ドキュメントでも、コマンドラインから短い反復開発を行う際に便利なコマンドとして説明されています。

基本的な使い方は、プロジェクトフォルダーで次のように入力するだけです。

C#
dotnet run

実行前に明示的にビルドしたい場合は、次のコマンドを使います。

C#
dotnet build

dotnet buildは、プロジェクトと依存関係をビルドするコマンドです。

5-4. 実行結果を確認する方法

C#プログラムの実行結果は、コンソール画面やターミナルに表示されます。たとえば、次のコードを書いた場合を考えます。

C#
Console.WriteLine("C#を学習中です");

実行結果は次のようになります。

C#
C#を学習中です

思った通りに表示されない場合は、コードの文字列、変数の値、条件分岐の内容を確認します。エラーが出た場合は、エラーメッセージをよく読み、どの行で問題が起きているかを確認しましょう。

6. C#プログラムの基本的な書き方

C#プログラムを書くには、変数、データ型、条件分岐、繰り返し、メソッドなどの基本文法を理解する必要があります。ここでは、初心者が最初に覚えるべき書き方を紹介します。

6-1. 変数とデータ型の使い方

変数とは、値を入れておく箱のようなものです。C#では、変数を使うときにデータ型を指定します。

C#
int age = 20;
string name = "田中";
double height = 170.5;
bool isStudent = true;

intは整数、stringは文字列、doubleは小数、boolは真偽値を表します。

変数を使うと、同じ値を何度も書かずに済みます。

C#
int price = 1000;
int count = 3;
int total = price * count;

Console.WriteLine(total);

このプログラムでは、pricecountを使って合計金額を計算しています。

6-2. 文字列・数値・真偽値の扱い方

C#では、文字列はダブルクォーテーションで囲みます。

C#
string message = "こんにちは";

数値はそのまま書けます。

C#
int number = 10;
double rate = 1.5;

真偽値はtrueまたはfalseで表します。

C#
bool isPassed = true;

文字列と数値を組み合わせて表示する場合は、文字列補間を使うと便利です。

C#
string name = "佐藤";
int age = 25;

Console.WriteLine($"{name}さんは{age}歳です");

このように書くと、変数の値を自然な文章の中に埋め込めます。

6-3. if文による条件分岐

if文は、条件によって処理を分けるために使います。

C#
int score = 80;

if (score >= 60)
{
Console.WriteLine("合格です");
}
else
{
Console.WriteLine("不合格です");
}

このプログラムでは、scoreが60以上なら「合格です」、そうでなければ「不合格です」と表示します。

条件を複数に分けたい場合は、else ifを使います。

C#
int score = 85;

if (score >= 90)
{
Console.WriteLine("評価はAです");
}
else if (score >= 70)
{
Console.WriteLine("評価はBです");
}
else
{
Console.WriteLine("評価はCです");
}

条件分岐は、C#プログラムで非常によく使う基本処理です。

6-4. for文・while文による繰り返し処理

同じ処理を何度も実行したい場合は、繰り返し処理を使います。for文は、回数が決まっている繰り返しに向いています。

C#
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
}

このプログラムは、1から5までの数値を表示します。

while文は、条件が成り立っている間だけ繰り返します。

C#
int count = 1;

while (count <= 5)
{
Console.WriteLine(count);
count++;
}

while文では、条件を更新する処理を忘れると無限ループになることがあります。初心者は、ループの終了条件を必ず確認しましょう。

6-5. メソッドの作り方と呼び出し方

メソッドとは、処理をまとめたものです。同じ処理を何度も使いたいときや、コードを読みやすくしたいときに使います。

C#
static void SayHello()
{
Console.WriteLine("こんにちは");
}

作成したメソッドは、次のように呼び出します。

C#
SayHello();

引数を使うと、メソッドに値を渡せます。

C#
static void Greet(string name)
{
Console.WriteLine($"{name}さん、こんにちは");
}

Greet("田中");

戻り値を返すメソッドも作れます。

C#
static int Add(int a, int b)
{
return a + b;
}

int result = Add(3, 5);
Console.WriteLine(result);

メソッドを使うと、C#プログラムを処理ごとに整理できます。

7. C#プログラムでよく使う基本処理

C#プログラムでは、画面に表示するだけでなく、キーボード入力を受け取る、計算する、配列やリストを扱う、クラスを使うといった処理をよく使います。

7-1. キーボード入力を受け取る方法

キーボードから入力を受け取るには、Console.ReadLineを使います。

C#
Console.WriteLine("名前を入力してください");
string name = Console.ReadLine();

Console.WriteLine($"{name}さん、こんにちは");

Console.ReadLineで受け取った値は、基本的に文字列として扱われます。数値として使いたい場合は、変換が必要です。

C#
Console.WriteLine("年齢を入力してください");
string input = Console.ReadLine();
int age = int.Parse(input);

Console.WriteLine($"{age}歳ですね");

ただし、数値に変換できない文字を入力するとエラーになります。安全に変換したい場合は、int.TryParseを使います。

C#
Console.WriteLine("数値を入力してください");
string input = Console.ReadLine();

if (int.TryParse(input, out int number))
{
Console.WriteLine($"入力された数値は{number}です");
}
else
{
Console.WriteLine("数値ではありません");
}

7-2. 計算処理を行う方法

C#では、四則演算を簡単に行えます。

C#
int a = 10;
int b = 3;

Console.WriteLine(a + b);
Console.WriteLine(a - b);
Console.WriteLine(a * b);
Console.WriteLine(a / b);
Console.WriteLine(a % b);

+は足し算、-は引き算、*は掛け算、/は割り算、%は余りを求める演算子です。

整数同士の割り算では、小数部分が切り捨てられます。

C#
int result = 10 / 3;
Console.WriteLine(result);

この結果は3になります。小数まで計算したい場合は、doubleを使います。

C#
double result = 10.0 / 3.0;
Console.WriteLine(result);

7-3. 配列やリストを使う方法

複数の値をまとめて扱いたい場合は、配列やリストを使います。配列は、要素数が決まっているデータのまとまりです。

C#
int[] scores = { 80, 90, 70 };

Console.WriteLine(scores[0]);

配列の要素番号は0から始まります。scores[0]は最初の要素を表します。

リストは、後から要素を追加しやすいデータ構造です。

C#
List<string> names = new List<string>();

names.Add("田中");
names.Add("佐藤");
names.Add("鈴木");

foreach (string name in names)
{
Console.WriteLine(name);
}

リストを使う場合は、必要に応じて次のusingを追加します。

C#
using System.Collections.Generic;

配列やリストは、一覧表示、集計、検索などでよく使います。

7-4. クラスとオブジェクトの基本

C#はオブジェクト指向プログラミングに対応した言語です。オブジェクト指向では、データと処理をクラスにまとめます。

たとえば、人を表すPersonクラスを作ると、次のようになります。

C#
class Person
{
public string Name;
public int Age;

public void Introduce()
{
Console.WriteLine($"{Name}です。{Age}歳です。");
}
}

このクラスを使うには、オブジェクトを作成します。

C#
Person person = new Person();
person.Name = "田中";
person.Age = 20;
person.Introduce();

クラスは、プログラムが大きくなるほど重要になります。最初は「関連するデータと処理をまとめる仕組み」と理解しておきましょう。

7-5. コメントの書き方と活用方法

コメントは、プログラムの説明を書くために使います。C#では、1行コメントには//を使います。

C#
// 画面にメッセージを表示する
Console.WriteLine("こんにちは");

複数行コメントには/* */を使います。

C#
/*
ここは複数行のコメントです。
処理の説明をまとめて書けます。
*/

コメントは、コードを読む人に意図を伝えるために役立ちます。ただし、書きすぎると逆に読みにくくなります。コードを見ればわかる内容ではなく、「なぜその処理をしているのか」を補足する目的で使うと効果的です。

8. C#プログラムでよくあるエラーと対処法

C#プログラムを書いていると、必ずエラーに出会います。エラーは失敗ではなく、プログラムを正しく直すための手がかりです。初心者は、エラーメッセージを怖がらずに読む習慣をつけましょう。

8-1. コンパイルエラーとは

コンパイルエラーとは、プログラムを実行する前の変換段階で見つかるエラーです。C#の文法が間違っている場合や、存在しない変数を使っている場合などに発生します。

たとえば、次のコードはセミコロンがないためエラーになります。

C#
Console.WriteLine("こんにちは")

正しくは次のように書きます。

C#
Console.WriteLine("こんにちは");

コンパイルエラーは、実行前に問題を教えてくれるため、エラーメッセージを確認すれば修正しやすいことが多いです。

8-2. 実行時エラーとは

実行時エラーとは、プログラムを実行している途中で発生するエラーです。文法は正しくても、処理中に問題が起きる場合があります。

たとえば、数値に変換できない文字をint.Parseで変換しようとすると、実行時エラーになります。

C#
string input = "abc";
int number = int.Parse(input);

このような場合は、int.TryParseを使って安全に変換します。

C#
string input = "abc";

if (int.TryParse(input, out int number))
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("数値に変換できません");
}

実行時エラーを防ぐには、入力値や計算条件を事前に確認することが大切です。

8-3. よくあるエラーメッセージの原因

C#初心者がよく見るエラーには、いくつかのパターンがあります。

The name 'xxx' does not exist in the current contextは、指定した変数やメソッドが見つからないという意味です。変数名のスペルミスや、宣言した場所の問題が原因です。

; expectedは、セミコロンが必要な場所にないという意味です。命令文の最後を確認しましょう。

} expectedは、閉じ波かっこが不足しているという意味です。if文、for文、メソッド、クラスの波かっこが正しく対応しているか確認します。

Cannot implicitly convert typeは、型の変換が正しくできないという意味です。たとえば、文字列を整数の変数に直接入れようとした場合などに発生します。

8-4. エラー箇所を見つける方法

エラー箇所を見つけるには、まずエラーメッセージに表示される行番号を確認します。ただし、実際の原因がその行の直前にある場合もあります。特にセミコロン忘れや波かっこの不足は、エラー表示の行だけでなく前後の行も確認しましょう。

Visual StudioやVisual Studio Codeでは、エラーのある箇所に赤い下線が表示されることがあります。マウスを重ねると、エラー内容の説明が表示されます。

また、プログラムの途中にConsole.WriteLineを入れて、どこまで処理が進んでいるかを確認する方法もあります。

C#
Console.WriteLine("処理1開始");

このように目印を入れると、どの処理で問題が起きているかを調べやすくなります。

8-5. 初心者が確認すべきチェックポイント

C#プログラムでエラーが出たら、まず次の点を確認しましょう。

セミコロンを忘れていないか。波かっこが対応しているか。変数名のスペルが一致しているか。全角記号を使っていないか。文字列をダブルクォーテーションで囲んでいるか。変数を使う前に宣言しているか。データ型が合っているか。

特に初心者は、全角スペースや全角記号が原因でエラーになることがあります。見た目ではわかりにくいため、記号は半角で入力する習慣をつけましょう。

9. C#プログラムを読みやすく書くコツ

C#プログラムは、動けばよいというものではありません。後から自分で読み返したとき、または他の人が見たときに理解しやすいコードを書くことが大切です。

9-1. インデントを整える

インデントとは、コードの行頭に入れる空白のことです。波かっこの中の処理を一段下げることで、コードのまとまりが見やすくなります。

読みやすいコードの例です。

C#
if (score >= 60)
{
Console.WriteLine("合格です");
}

読みにくいコードの例です。

C#
if (score >= 60)
{
Console.WriteLine("合格です");
}

処理が増えるほど、インデントの重要性は高くなります。Visual StudioやVisual Studio Codeには自動整形機能があるため、積極的に活用しましょう。

9-2. わかりやすい変数名を付ける

変数名は、値の意味がわかる名前にします。たとえば、年齢を入れる変数ならage、合計金額ならtotalPriceのように付けます。

C#
int age = 20;
int totalPrice = 3000;

次のような名前は、意味がわかりにくくなります。

C#
int a = 20;
int x = 3000;

短い練習プログラムでは問題なくても、コードが長くなると変数の意味がわからなくなります。最初からわかりやすい名前を付ける習慣を身につけましょう。

9-3. 処理ごとにメソッドを分ける

1つのメソッドに多くの処理を書きすぎると、コードが読みにくくなります。処理の役割ごとにメソッドを分けると、見通しがよくなります。

C#
static void ShowMenu()
{
Console.WriteLine("1: 開始");
Console.WriteLine("2: 終了");
}

static void ShowMessage()
{
Console.WriteLine("メニューを選択してください");
}

メソッド名を見るだけで何をする処理なのかがわかるようにすると、コード全体が理解しやすくなります。

9-4. コメントを書きすぎない注意点

コメントは便利ですが、書きすぎるとコードが読みにくくなります。たとえば、次のコメントはなくても意味がわかります。

C#
// ageに20を代入する
int age = 20;

このようなコメントよりも、処理の理由を説明するコメントの方が役立ちます。

C#
// 未成年の場合は購入処理を行わない
if (age < 20)
{
return;
}

コメントは「何をしているか」よりも「なぜそうしているか」を書くと効果的です。

10. 初心者向けC#プログラムの練習例

C#プログラムを上達させるには、実際に手を動かして小さなプログラムを作ることが大切です。ここでは、初心者向けの練習例を紹介します。

10-1. 数値を入力して計算するプログラム

まずは、入力された数値を使って計算するプログラムです。

C#
Console.WriteLine("1つ目の数値を入力してください");
int a = int.Parse(Console.ReadLine());

Console.WriteLine("2つ目の数値を入力してください");
int b = int.Parse(Console.ReadLine());

int total = a + b;

Console.WriteLine($"合計は{total}です");

このプログラムでは、キーボード入力、数値変換、計算、表示の基本を練習できます。

より安全に書くなら、int.TryParseを使います。

C#
Console.WriteLine("数値を入力してください");
string input = Console.ReadLine();

if (int.TryParse(input, out int number))
{
Console.WriteLine($"入力値の2倍は{number * 2}です");
}
else
{
Console.WriteLine("正しい数値を入力してください");
}

10-2. 条件分岐を使った判定プログラム

次は、点数を入力して合格か不合格かを判定するプログラムです。

C#
Console.WriteLine("点数を入力してください");
int score = int.Parse(Console.ReadLine());

if (score >= 60)
{
Console.WriteLine("合格です");
}
else
{
Console.WriteLine("不合格です");
}

さらに評価を分けたい場合は、else ifを使います。

C#
Console.WriteLine("点数を入力してください");
int score = int.Parse(Console.ReadLine());

if (score >= 90)
{
Console.WriteLine("評価はAです");
}
else if (score >= 70)
{
Console.WriteLine("評価はBです");
}
else if (score >= 60)
{
Console.WriteLine("評価はCです");
}
else
{
Console.WriteLine("不合格です");
}

条件分岐は実用的なC#プログラムでもよく使われます。

10-3. 繰り返し処理を使った一覧表示プログラム

繰り返し処理を使うと、一覧表示を簡単に作れます。

C#
string[] fruits = { "りんご", "みかん", "バナナ" };

for (int i = 0; i < fruits.Length; i++)
{
Console.WriteLine(fruits[i]);
}

foreachを使うと、よりシンプルに書けます。

C#
string[] fruits = { "りんご", "みかん", "バナナ" };

foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}

一覧表示は、配列やリストの練習に最適です。

10-4. 簡単な電卓プログラム

最後に、簡単な電卓プログラムを作ってみます。

C#
Console.WriteLine("1つ目の数値を入力してください");
double a = double.Parse(Console.ReadLine());

Console.WriteLine("演算子を入力してください(+ - * /)");
string op = Console.ReadLine();

Console.WriteLine("2つ目の数値を入力してください");
double b = double.Parse(Console.ReadLine());

double result = 0;

if (op == "+")
{
result = a + b;
}
else if (op == "-")
{
result = a - b;
}
else if (op == "*")
{
result = a * b;
}
else if (op == "/")
{
result = a / b;
}
else
{
Console.WriteLine("対応していない演算子です");
return;
}

Console.WriteLine($"計算結果は{result}です");

このプログラムでは、入力、条件分岐、計算、表示をまとめて練習できます。余裕があれば、0で割ろうとした場合のチェックも追加してみましょう。

C#
if (op == "/" && b == 0)
{
Console.WriteLine("0で割ることはできません");
return;
}

11. C#プログラム学習の進め方

C#プログラムを学ぶときは、いきなり難しいアプリを作ろうとせず、基本文法から順番に身につけることが大切です。

11-1. 基本文法を覚える順番

初心者は、次の順番で学ぶと理解しやすくなります。

まず、Console.WriteLineで文字を表示する方法を覚えます。次に、変数とデータ型を学びます。その後、if文による条件分岐、for文やwhile文による繰り返しを学びます。

基本文法に慣れたら、メソッド、配列、リスト、クラスの順に進みます。クラスは最初から完璧に理解しようとせず、簡単な例を作りながら少しずつ慣れていくとよいでしょう。

11-2. サンプルコードを写して理解する方法

初心者に効果的なのが、サンプルコードを写して実行する学習方法です。ただ読むだけではなく、自分で入力して実行すると、記号の位置や文法のルールが身につきます。

写すときは、1行ずつ意味を確認しましょう。たとえば、int score = 80;なら「整数型の変数scoreに80を入れている」と説明できるようにします。

サンプルコードが動いたら、文字を変える、数値を変える、条件を変えるなど、少しだけ改造してみましょう。改造することで、コードの意味をより深く理解できます。

11-3. 小さなプログラムを作って練習する

C#プログラムの学習では、小さなプログラムをたくさん作ることが重要です。たとえば、次のような練習がおすすめです。

名前を入力してあいさつするプログラム、年齢を入力して成人か判定するプログラム、点数を入力して評価を表示するプログラム、配列の中身を一覧表示するプログラム、簡単な電卓プログラムなどです。

大きなアプリを作ろうとすると途中で挫折しやすくなります。まずは数十行程度の小さなC#プログラムを完成させる経験を積みましょう。

11-4. 次に学ぶべきC#の応用分野

基本文法に慣れたら、目的に合わせて応用分野へ進みます。Webアプリを作りたい場合はASP.NET Core、ゲームを作りたい場合はUnity、Windowsアプリを作りたい場合はWPFやWindows Formsを学ぶとよいでしょう。

また、実務的な開発を目指すなら、ファイル操作、例外処理、LINQ、データベース接続、非同期処理、オブジェクト指向設計なども重要です。

最初からすべてを学ぶ必要はありません。作りたいものを決め、そのために必要な知識を少しずつ追加していくのが効率的です。

12. C#プログラムに関するよくある質問

ここでは、C#プログラムを学び始める初心者が疑問に思いやすい内容をまとめます。

12-1. C#は初心者でも学びやすい?

C#は初心者でも学びやすいプログラミング言語の1つです。文法が整理されており、Visual Studioなどの開発環境も充実しています。エラー表示やコード補完も利用できるため、間違いに気づきながら学習を進められます。

ただし、最初からクラスやオブジェクト指向を完全に理解しようとすると難しく感じることがあります。まずは、変数、条件分岐、繰り返し、メソッドなどの基本から始めるのがおすすめです。

12-2. C#プログラムの実行に必要なものは?

C#プログラムを実行するには、基本的に.NET SDKまたは実行環境が必要です。開発する場合は.NET SDKをインストールします。.NET SDKには、C#プログラムの作成、ビルド、実行に必要な機能が含まれます。

Visual Studioを使う場合は、インストール時に.NET関連の開発機能を選択することで、C#開発に必要な環境をまとめて準備できます。Windows向けの公式ドキュメントでも、Visual Studioを使用する場合はVisual Studioが.NETの独自コピーを管理し、SDKやランタイム、テンプレートをインストールする方法が説明されています。

12-3. C#とJavaの違いは?

C#とJavaは、どちらもオブジェクト指向の考え方を持つプログラミング言語で、文法にも似ている部分があります。どちらも業務システムやWeb開発などで使われます。

大きな違いとして、C#は.NETと組み合わせて使われることが多く、Microsoft系の開発環境と相性がよい点があります。JavaはJVM上で動作し、長く企業システムやAndroid開発などで使われてきました。

初心者がどちらを学ぶべきかは、作りたいものによって変わります。Windowsアプリ、Unityゲーム、ASP.NET CoreによるWebアプリに興味があるなら、C#は有力な選択肢です。

12-4. C#でWebアプリやゲームは作れる?

C#でWebアプリやゲームは作れます。Webアプリを作る場合は、ASP.NET Coreを使うのが一般的です。画面を持つWebサイト、APIサーバー、業務用Webシステムなどを開発できます。

ゲーム開発では、UnityでC#を使うことが多くあります。キャラクターの動き、当たり判定、スコア計算、画面遷移などの処理をC#で書きます。

ただし、Webアプリやゲームは、C#の基本文法だけでなく、フレームワークやツールの使い方も学ぶ必要があります。まずはコンソールアプリでC#プログラムの基礎を固めてから進むと理解しやすくなります。

12-5. 独学でC#プログラムを作れるようになる?

C#プログラムは独学でも作れるようになります。公式ドキュメント、入門書、学習サイト、動画教材など、学習しやすい情報が多くあります。特に初心者は、サンプルコードを写して実行し、少しずつ改造する方法が効果的です。

独学で挫折しないためには、目標を小さくすることが大切です。最初から大きなアプリを作ろうとせず、「文字を表示する」「入力を受け取る」「計算する」「条件で判定する」といった小さな機能を1つずつ作りましょう。

エラーが出ても、原因を調べて直す経験が成長につながります。C#プログラムは、書いて、動かして、直すことを繰り返すほど上達します。

まとめ

C#プログラムは、C#という言語で書かれ、.NETという開発基盤の上で作成・実行されます。初心者は、まずコンソールアプリから始めると、C#の基本構造や書き方を理解しやすくなります。

学習の最初に覚えるべき内容は、Console.WriteLineによる表示、変数とデータ型、条件分岐、繰り返し、メソッド、配列やリスト、クラスの基本です。これらを順番に学べば、小さなC#プログラムを自分で作れるようになります。

また、エラーは学習の一部です。セミコロン忘れ、波かっこの不足、変数名のミス、型の不一致など、初心者がつまずきやすいポイントを確認しながら修正していきましょう。

C#は、コンソールアプリだけでなく、Webアプリ、デスクトップアプリ、ゲーム開発、業務システムなど幅広い分野で使える言語です。まずは小さなプログラムを作ることから始め、少しずつ応用分野へ進んでいきましょう。