csharp console入門|C#コンソールアプリの作り方・実行方法を初心者向けに解説

はじめに

C#を学び始めると、最初によく出てくるのが「csharp console」や「C#コンソールアプリ」という言葉です。コンソールアプリは、黒い画面やターミナル上で文字を表示したり、キーボードから入力を受け取ったりして動くシンプルなアプリケーションです。

C#にはWindowsアプリ、Webアプリ、ゲーム、スマートフォンアプリなどさまざまな開発分野がありますが、初心者が最初に学ぶならコンソールアプリがおすすめです。理由は、画面デザインや複雑な設定に悩まず、C#の基本文法に集中できるからです。

この記事では、csharp consoleの意味から、C#コンソールアプリの作り方、実行方法、基本コード、よくあるエラー、初心者向けのサンプルまで順番に解説します。C#を初めて触る人でも理解しやすいように、できるだけやさしく説明していきます。

1. csharp consoleとは?C#コンソールアプリの基本を初心者向けに解説

1-1. csharp consoleの意味とC#コンソールアプリの役割

「csharp console」とは、C#で作るコンソールアプリを指して使われることが多い言葉です。C#は「シーシャープ」と読み、Microsoftが開発しているプログラミング言語です。consoleは、文字ベースで操作する画面や仕組みを意味します。

C#コンソールアプリは、主に次のような処理を行うために使われます。

プログラムの結果を文字で表示する、ユーザーからキーボード入力を受け取る、計算処理を行う、ファイル操作を行う、簡単な業務ツールを作る、プログラミング学習の練習をする、といった用途です。

たとえば、次のようなコードを書くと、画面に文字を表示できます。

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

実行すると、コンソール画面に次のように表示されます。

Hello, World!

このように、C#コンソールアプリは「入力」「処理」「出力」というプログラムの基本を学ぶのに適した形式です。

1-2. コンソールアプリとWindowsアプリ・Webアプリの違い

C#では、コンソールアプリ以外にもさまざまな種類のアプリを作れます。代表的なものには、WindowsアプリやWebアプリがあります。

コンソールアプリは、文字を中心に操作するアプリです。ボタンや画像などの画面部品は基本的に使わず、コンソール画面に文字を表示しながら動きます。見た目はシンプルですが、プログラムの処理を理解しやすいのが特徴です。

Windowsアプリは、ボタン、テキストボックス、メニューなどを持つ画面付きのアプリです。普段使っているデスクトップソフトのように、マウス操作を前提にしたアプリを作れます。

Webアプリは、ブラウザ上で動くアプリです。ログイン画面、予約システム、ECサイト、管理画面などを作るときに使われます。C#ではASP.NET Coreを使ってWebアプリを開発できます。

初心者が最初からWindowsアプリやWebアプリに挑戦すると、画面作成、イベント処理、HTML、CSS、データベース、サーバー設定など、学ぶことが一気に増えます。そのため、まずはコンソールアプリでC#の基本を身につけるのがおすすめです。

1-3. C#初心者が最初にコンソールアプリから学ぶべき理由

C#初心者がコンソールアプリから学ぶべき理由は、C#の文法に集中できるからです。

プログラミングを学び始めたばかりの段階では、変数、条件分岐、繰り返し、配列、メソッド、クラスなどの基本を理解することが重要です。コンソールアプリなら、余計な画面設計を気にせず、これらの文法を一つずつ確認できます。

たとえば、if文を学ぶ場合、コンソールアプリなら次のように短いコードで試せます。

C#
int score = 80;

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

このコードを実行すれば、条件によって表示が変わることをすぐに確認できます。

また、コンソールアプリはエラーの原因を見つけやすいというメリットもあります。画面部品や外部サービスが少ないため、「どのコードが原因で動かないのか」を追いやすくなります。

C#の基礎力をしっかり身につけたいなら、まずはcsharp consoleから始めるのが近道です。

1-4. Console.WriteLine・Console.ReadLineでできること

C#コンソールアプリで特によく使うのが、Console.WriteLineConsole.ReadLineです。

Console.WriteLineは、コンソール画面に文字や数値を表示するための命令です。

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

実行すると、次のように表示されます。

こんにちは
123

一方、Console.ReadLineは、ユーザーがキーボードで入力した文字を受け取るための命令です。

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

Console.WriteLine("こんにちは、" + name + "さん");

このコードでは、ユーザーが入力した名前を変数nameに入れ、その名前を使ってあいさつ文を表示しています。

Console.WriteLineで出力し、Console.ReadLineで入力を受け取る。この2つを使えるようになるだけで、簡単な対話型のコンソールアプリを作れるようになります。

2. C#コンソールアプリを作る前に必要な開発環境

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

C#コンソールアプリを作るには、開発環境が必要です。代表的なものにVisual StudioとVisual Studio Codeがあります。

Visual Studioは、C#開発に必要な機能がまとまった統合開発環境です。プロジェクト作成、コード補完、実行、デバッグ、エラー確認などを画面上で操作できます。C#初心者にとっては、必要な機能が最初からそろっているため扱いやすいです。

Visual Studio Codeは、軽量なコードエディタです。動作が軽く、拡張機能を追加することでC#開発にも対応できます。ただし、C#用の拡張機能や.NET SDKの準備が必要になるため、完全な初心者には少し設定が難しく感じる場合があります。

簡単にまとめると、初心者がC#コンソールアプリを学ぶならVisual Studio、軽量なエディタで柔軟に開発したいならVisual Studio Codeが向いています。

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

C#初心者におすすめなのは、Visual Studioです。特にWindows環境では、Visual Studioを使うとC#コンソールアプリを簡単に作成できます。

Visual Studioには、コンソールアプリ用のテンプレートがあります。テンプレートを選ぶだけで、必要なファイルや設定が自動で作られます。そのため、初めてでも迷いにくいです。

また、コードにエラーがある場合は、赤い波線やエラー一覧で原因を確認できます。プログラムを一行ずつ実行するデバッグ機能も使えるため、学習にも向いています。

一方、Macを使っている場合や、軽い環境で学びたい場合は、Visual Studio Codeと.NET SDKの組み合わせも選択肢になります。ターミナルでdotnetコマンドを使うことで、C#コンソールアプリを作成・実行できます。

最初はVisual Studioで基本を学び、慣れてきたらVisual Studio Codeやコマンドラインでの開発にも挑戦するとよいでしょう。

2-3. .NET SDKとは?インストールが必要な理由

C#コンソールアプリを作るには、.NET SDKが必要です。

.NET SDKとは、C#などでアプリを作成、ビルド、実行するための開発キットです。SDKは「Software Development Kit」の略で、プログラムを開発するために必要な道具一式のようなものです。

.NET SDKには、主に次のようなものが含まれています。

C#のコードをコンピューターが実行できる形に変換する機能、プロジェクトを作成する機能、アプリを実行する機能、ライブラリを管理する機能などです。

たとえば、コマンドラインで次のように入力すると、新しいC#コンソールアプリを作れます。

Bash
dotnet new console

また、次のコマンドでアプリを実行できます。

Bash
dotnet run

このようなdotnetコマンドを使うためには、.NET SDKがインストールされている必要があります。

Visual StudioをインストールするときにC#開発用のワークロードを選べば、必要な.NET関連機能も一緒に入ります。Visual Studio Codeを使う場合は、別途.NET SDKをインストールする必要があります。

2-4. Windows・MacでC#コンソールアプリは作れる?

C#コンソールアプリは、WindowsだけでなくMacでも作れます。

C#はMicrosoftの言語というイメージが強いですが、現在の.NETはクロスプラットフォームに対応しています。そのため、Windows、macOS、Linuxなど複数の環境でC#コンソールアプリを開発できます。

Windowsの場合は、Visual Studioを使うと簡単です。Visual Studio Codeと.NET SDKを使って開発することもできます。

Macの場合は、Visual Studio Codeと.NET SDKを組み合わせて開発するのが一般的です。ターミナルでdotnet new consoledotnet runを使えば、Windowsと同じようにコンソールアプリを作成・実行できます。

ただし、画面付きのWindows専用アプリを作る場合は、Windows環境が必要になることがあります。コンソールアプリの学習であれば、WindowsでもMacでも問題なく始められます。

3. Visual StudioでC#コンソールアプリを作成する手順

3-1. 新しいプロジェクトを作成する

Visual StudioでC#コンソールアプリを作るには、まず新しいプロジェクトを作成します。

Visual Studioを起動すると、スタート画面に「新しいプロジェクトの作成」という項目があります。これを選択すると、作成できるアプリの種類が一覧で表示されます。

プロジェクトとは、C#のコードファイル、設定ファイル、ビルド情報などをまとめて管理する単位です。C#コンソールアプリを作る場合も、最初にプロジェクトを作成して、その中にコードを書いていきます。

初めてのうちは、プロジェクト名や保存場所に悩むかもしれません。練習用であれば、わかりやすくConsoleAppPracticeHelloWorldAppのような名前を付けるとよいでしょう。

3-2. 「コンソールアプリ」テンプレートを選択する

新しいプロジェクトの作成画面では、テンプレートを選択します。C#コンソールアプリを作る場合は、「コンソールアプリ」または「Console App」というテンプレートを選びます。

テンプレートが多くて見つけにくい場合は、検索欄に「コンソール」や「console」と入力すると探しやすくなります。また、言語のフィルターで「C#」を選択しておくと、C#用のテンプレートだけを表示できます。

注意したいのは、似た名前のテンプレートが複数ある場合です。初心者は、基本的には「C#」の「コンソールアプリ」を選べば問題ありません。

テンプレートを選ぶと、Visual Studioがコンソールアプリに必要な初期ファイルを自動で作成してくれます。

3-3. プロジェクト名・保存場所・フレームワークを設定する

テンプレートを選んだら、プロジェクト名、保存場所、ソリューション名などを設定します。

プロジェクト名は、作成するアプリの名前です。日本語でも設定できる場合がありますが、初心者のうちは英数字で付けることをおすすめします。たとえば、MyConsoleAppSampleConsoleAppのような名前です。

保存場所は、プロジェクトを置くフォルダです。後から探しやすいように、学習用フォルダを作ってまとめておくと便利です。

フレームワークの選択画面が表示される場合は、基本的には新しい.NETを選べば問題ありません。特別な理由がない限り、古い.NET Frameworkではなく、現在主流の.NETを選ぶとよいでしょう。

設定が終わると、Visual Studioがプロジェクトを作成し、コード編集画面が表示されます。

3-4. Program.csの中身を確認する

C#コンソールアプリを作成すると、Program.csというファイルが作られます。これは、アプリの処理を書く中心的なファイルです。

新しい形式のC#コンソールアプリでは、最初から次のようなコードが書かれていることがあります。

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

非常に短いコードですが、これだけでコンソール画面に文字を表示できます。

一方、古い形式や設定によっては、次のようなコードになっている場合もあります。

C#
using System;

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

どちらもC#コンソールアプリとして正しく動きます。新しい形式では、Mainメソッドやクラスの記述を省略できるため、初心者でも読みやすくなっています。

3-5. Hello Worldを表示して動作確認する

最初の動作確認として、画面に「Hello World」を表示してみましょう。

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

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

Visual Studioで実行すると、コンソール画面に次のように表示されます。

Hello World

この「Hello World」は、プログラミング学習で最初によく使われるサンプルです。意味は単純ですが、開発環境が正しく動いているか、コードを書いて実行できるかを確認する大切な第一歩です。

表示する文字を変えたい場合は、ダブルクォーテーションの中を書き換えます。

C#
Console.WriteLine("C#の勉強を始めました");

このように、まずは文字を表示するところから始めると、C#コンソールアプリの基本に慣れやすくなります。

4. C#コンソールアプリの基本コードを理解する

4-1. Program.csとは何か

Program.csは、C#コンソールアプリの処理を書くための基本ファイルです。

C#では、コードファイルの拡張子に.csを使います。Program.csの中に、コンソール画面へ文字を表示したり、ユーザーの入力を受け取ったりする処理を書いていきます。

初心者のうちは、まずProgram.csにコードを書いて実行する流れを覚えましょう。複数のファイルに分けるのは、C#の基本に慣れてからで問題ありません。

たとえば、次のようなコードをProgram.csに書くと、コンソール画面にメッセージを表示できます。

C#
Console.WriteLine("Program.csに書いた処理です");

アプリが大きくなると、処理を別のクラスやファイルに分けることもあります。しかし、学習初期の段階では、Program.csがC#コンソールアプリの出発点だと考えるとわかりやすいです。

4-2. Mainメソッドとは何か

Mainメソッドは、C#コンソールアプリが実行されるときの入口になる部分です。

従来のC#では、次のようにMainメソッドの中に処理を書いていました。

C#
using System;

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

この場合、アプリを実行するとMainメソッドの中に書かれた処理が上から順番に実行されます。

static void Main(string[] args)という書き方は、初心者には少し難しく見えるかもしれません。最初は「C#コンソールアプリはMainメソッドから始まる」と覚えておけば十分です。

現在のC#では、トップレベルステートメントという仕組みにより、Mainメソッドを明示的に書かなくてもコンソールアプリを作れます。

4-3. トップレベルステートメントとは何か

トップレベルステートメントとは、Mainメソッドやクラスの記述を省略して、直接処理を書けるC#の書き方です。

たとえば、次のコードはトップレベルステートメントを使った書き方です。

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

これだけでC#コンソールアプリとして実行できます。

従来の書き方では、次のようにクラスやMainメソッドを書く必要がありました。

C#
class Program
{
static void Main()
{
Console.WriteLine("Hello World");
}
}

トップレベルステートメントを使うと、初心者が最初に覚えるコード量を減らせます。そのため、C#の学習を始めたばかりの人にとっては扱いやすい書き方です。

ただし、C#を本格的に学ぶなら、いずれはクラスやMainメソッドの意味も理解する必要があります。最初は短い書き方で慣れ、後から従来の構造を学ぶとスムーズです。

4-4. Console.WriteLineで文字を出力する

Console.WriteLineは、C#コンソールアプリで文字や数値を表示するためによく使う命令です。

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

このコードを実行すると、コンソール画面に「こんにちは」と表示されます。

数値も表示できます。

C#
Console.WriteLine(100);

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

C#
string name = "田中";
Console.WriteLine(name);

複数の文字をつなげて表示する場合は、+を使えます。

C#
string name = "田中";
Console.WriteLine("こんにちは、" + name + "さん");

また、文字列補間を使うと、より読みやすく書けます。

C#
string name = "田中";
Console.WriteLine($"こんにちは、{name}さん");

初心者には、文字列補間の書き方がおすすめです。変数を文字列の中に自然に埋め込めるため、コードが読みやすくなります。

4-5. Console.ReadLineでキーボード入力を受け取る

Console.ReadLineは、ユーザーがキーボードで入力した内容を受け取るために使います。

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

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

このコードを実行すると、まず「名前を入力してください」と表示されます。ユーザーが名前を入力してEnterキーを押すと、その内容がnameという変数に入ります。

注意点として、Console.ReadLineで受け取れる値は文字列です。たとえユーザーが10と入力しても、C#上では数値ではなく文字列として扱われます。

そのため、入力された値を計算に使いたい場合は、数値に変換する必要があります。

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

int age = int.Parse(input);

Console.WriteLine($"あなたは{age}歳です");

数値変換については、後の章でも詳しく解説します。

4-6. 変数を使って入力値を表示する

変数とは、値を一時的に入れておく箱のようなものです。C#コンソールアプリでは、ユーザーの入力値を変数に入れて、その後の処理で使うことがよくあります。

たとえば、名前を入力して表示するコードは次のようになります。

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

Console.WriteLine($"あなたの名前は{name}です");

ここでは、nameという変数にユーザーが入力した文字列を入れています。

数値を扱う場合は、int型などを使います。

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

入力された数値を使う場合は、文字列から数値へ変換します。

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

int score = int.Parse(input);

Console.WriteLine($"入力された点数は{score}点です");

変数を使えるようになると、入力内容に応じて表示を変えたり、計算したりできるようになります。C#コンソールアプリの基本として、変数の使い方はしっかり覚えておきましょう。

5. C#コンソールアプリを実行する方法

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

Visual StudioでC#コンソールアプリを実行する方法は簡単です。コードを書いたら、画面上部にある実行ボタンを押します。

実行ボタンには、緑色の三角形のアイコンが表示されています。これをクリックすると、アプリがビルドされ、コンソール画面が開いて処理が実行されます。

ショートカットキーを使う場合は、F5またはCtrl + F5で実行できます。

実行中にエラーがある場合は、Visual Studioのエラー一覧に内容が表示されます。エラーの行に赤い波線が出ることもあります。初心者のうちは、エラーメッセージをよく読む習慣をつけることが大切です。

たとえば、セミコロンを書き忘れると、次のようなコードはエラーになります。

C#
Console.WriteLine("Hello")

正しくは、最後にセミコロンを付けます。

C#
Console.WriteLine("Hello");

Visual Studioでは、このような基本的なミスも見つけやすくなっています。

5-2. F5実行とCtrl+F5実行の違い

Visual Studioでは、F5Ctrl + F5のどちらでもC#コンソールアプリを実行できます。ただし、意味が少し違います。

F5は、デバッグ実行です。ブレークポイントを設定して処理を途中で止めたり、変数の中身を確認したりできます。プログラムの動きを詳しく調べたいときに使います。

Ctrl + F5は、デバッグなしで実行です。アプリを普通に実行するための方法です。初心者が単純に動作確認をしたい場合は、Ctrl + F5がわかりやすいです。

コンソールアプリでは、F5で実行すると処理が終わったあとに画面がすぐ閉じてしまうことがあります。その場合は、Ctrl + F5で実行すると、実行結果を確認しやすくなります。

または、最後に次のコードを追加して、Enterキーが押されるまで待つ方法もあります。

C#
Console.ReadLine();

学習中は、Ctrl + F5で実行して結果を確認し、デバッグを学ぶ段階になったらF5を使うとよいでしょう。

5-3. コマンドラインでdotnet runを使って実行する方法

C#コンソールアプリは、Visual Studioだけでなくコマンドラインからも実行できます。

まず、ターミナルやコマンドプロンプトを開き、プロジェクトのフォルダへ移動します。Program.cs.csprojファイルがあるフォルダです。

そのフォルダで次のコマンドを実行します。

Bash
dotnet run

すると、C#のコードがビルドされ、コンソールアプリが実行されます。

新しいコンソールアプリをコマンドで作る場合は、次のようにします。

Bash
dotnet new console -n MyConsoleApp

このコマンドを実行すると、MyConsoleAppという名前のコンソールアプリ用プロジェクトが作成されます。

作成したフォルダに移動します。

Bash
cd MyConsoleApp

そして、次のコマンドで実行します。

Bash
dotnet run

コマンドラインでの実行に慣れておくと、Visual Studio Codeを使った開発や、サーバー上での実行にも対応しやすくなります。

5-4. ビルドして実行ファイルを作成する方法

C#コンソールアプリは、ビルドすることで実行ファイルを作成できます。

ビルドとは、C#で書いたコードを実行できる形に変換する作業です。Visual Studioでは、メニューからビルドを実行できます。コマンドラインでは、次のコマンドを使います。

Bash
dotnet build

このコマンドを実行すると、プロジェクトがビルドされ、出力フォルダに実行に必要なファイルが作成されます。

さらに、配布用のファイルを作りたい場合は、次のようなコマンドを使います。

Bash
dotnet publish

dotnet publishを使うと、アプリを実行するために必要なファイルをまとめて出力できます。

学習段階では、まずdotnet runで実行できれば十分です。アプリを他の人に渡したい、または本番環境で実行したい段階になったら、dotnet builddotnet publishを学ぶとよいでしょう。

5-5. コンソール画面がすぐ閉じる原因と対処法

C#コンソールアプリを実行したときに、画面が一瞬で閉じてしまうことがあります。これは、プログラムの処理がすぐに終わっているためです。

たとえば、次のコードは文字を表示したあと、すぐに終了します。

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

実行環境によっては、結果を確認する前にコンソール画面が閉じてしまうことがあります。

対処法の一つは、Visual StudioでCtrl + F5を使って実行することです。これにより、処理終了後も画面が残る場合があります。

もう一つの方法は、最後にConsole.ReadLineを追加することです。

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

このコードでは、ユーザーがEnterキーを押すまでプログラムが終了しません。そのため、実行結果をゆっくり確認できます。

初心者のうちは、コンソール画面がすぐ閉じると「エラーが起きたのでは」と思うかもしれません。しかし、多くの場合は単に処理が終了しているだけです。

6. C#コンソールアプリでよく使う基本機能

6-1. 数値や文字列を入力する

C#コンソールアプリでは、ユーザーから文字列や数値を入力してもらう処理をよく使います。

文字列を入力する場合は、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.Parseは、数値に変換できない文字が入力されるとエラーになります。安全に変換したい場合は、int.TryParseを使います。

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

if (int.TryParse(input, out int age))
{
Console.WriteLine($"あなたは{age}歳です");
}
else
{
Console.WriteLine("数値を入力してください");
}

初心者はまずint.Parseで変換の基本を理解し、その後でint.TryParseを使った安全な書き方を覚えるとよいでしょう。

6-2. if文で条件分岐する

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

たとえば、年齢によって表示するメッセージを変える場合は、次のように書きます。

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

if (age >= 20)
{
Console.WriteLine("成人です");
}
else
{
Console.WriteLine("未成年です");
}

age >= 20は、「ageが20以上なら」という意味です。条件が正しい場合はifの中の処理が実行され、正しくない場合はelseの中の処理が実行されます。

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

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

if (score >= 80)
{
Console.WriteLine("よくできました");
}
else if (score >= 60)
{
Console.WriteLine("合格です");
}
else
{
Console.WriteLine("不合格です");
}

if文を使えるようになると、入力内容や計算結果に応じて動きが変わるアプリを作れるようになります。

6-3. for文・while文で繰り返し処理をする

繰り返し処理を行うには、for文やwhile文を使います。

for文は、回数が決まっている繰り返しに向いています。

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

このコードを実行すると、1から5までの数字が表示されます。

1
2
3
4
5

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

C#
int count = 1;

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

このコードも、1から5までを表示します。

for文とwhile文の使い分けは、最初は難しく感じるかもしれません。基本的には、繰り返す回数が決まっている場合はfor文、条件によって繰り返しを続けたい場合はwhile文と考えるとわかりやすいです。

6-4. 配列やListで複数のデータを扱う

複数のデータをまとめて扱いたいときは、配列やListを使います。

配列は、同じ型のデータをまとめて入れる仕組みです。

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

Console.WriteLine(fruits[0]);
Console.WriteLine(fruits[1]);
Console.WriteLine(fruits[2]);

配列の番号は0から始まります。そのため、fruits[0]は最初の要素である「りんご」を表します。

配列の中身を順番に表示するには、for文を使えます。

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

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

Listは、後からデータを追加しやすい仕組みです。

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

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

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

Listを使う場合は、ファイルの先頭に次の記述が必要になることがあります。

C#
using System.Collections.Generic;

配列やListを使えるようになると、複数の名前、点数、商品名などをまとめて処理できるようになります。

6-5. メソッドを作って処理を分ける

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

たとえば、あいさつを表示するメソッドは次のように書けます。

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

SayHello();

ただし、トップレベルステートメントを使っている場合、メソッドの書き方や配置に注意が必要です。初心者のうちは、次のように従来の形式で書くと理解しやすいです。

C#
class Program
{
static void Main()
{
SayHello();
}

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

値を受け取るメソッドも作れます。

C#
class Program
{
static void Main()
{
Greet("田中");
}

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

メソッドを使うと、コードの役割を分けられます。プログラムが長くなってきたら、処理をメソッドに分けることを意識しましょう。

6-6. 例外処理でエラーに対応する

例外処理とは、実行中にエラーが起きた場合に、プログラムが急に止まらないようにする仕組みです。

たとえば、次のコードでは、ユーザーが数字以外を入力するとエラーになります。

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

Console.WriteLine(number);

このようなエラーに対応するには、try-catchを使います。

C#
try
{
Console.WriteLine("数字を入力してください");
int number = int.Parse(Console.ReadLine());

Console.WriteLine($"入力された数字は{number}です");
}
catch
{
Console.WriteLine("数字に変換できませんでした");
}

tryの中にエラーが起きる可能性のある処理を書きます。エラーが起きた場合は、catchの中の処理が実行されます。

ただし、数値変換ではint.TryParseを使うほうが自然な場合も多いです。

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

if (int.TryParse(input, out int number))
{
Console.WriteLine($"入力された数字は{number}です");
}
else
{
Console.WriteLine("数字を入力してください");
}

例外処理を学ぶと、予期しない入力やエラーに強いコンソールアプリを作れるようになります。

7. 初心者がつまずきやすいC#コンソールアプリのエラーと解決方法

7-1. コンソールアプリのテンプレートが見つからない

Visual Studioで新しいプロジェクトを作成するときに、「コンソールアプリ」テンプレートが見つからないことがあります。

主な原因は、C#開発に必要な機能がインストールされていないことです。Visual Studioのインストーラーを開き、「.NETデスクトップ開発」などC#開発に必要なワークロードが入っているか確認しましょう。

また、テンプレート検索欄に「console」や「コンソール」と入力すると見つかりやすくなります。言語フィルターが別の言語になっている場合もあるため、「C#」が選ばれているか確認してください。

Visual Studio Codeを使っている場合は、テンプレートを画面から選ぶのではなく、コマンドラインで作成します。

Bash
dotnet new console

このコマンドが使えない場合は、.NET SDKがインストールされていない可能性があります。

7-2. Consoleが認識されない

コードにConsole.WriteLineと書いたときに、Consoleが認識されない場合があります。

原因の一つは、必要な名前空間が読み込まれていないことです。従来の書き方では、ファイルの先頭に次の記述を追加します。

C#
using System;

例は次のとおりです。

C#
using System;

class Program
{
static void Main()
{
Console.WriteLine("Hello");
}
}

新しいC#のプロジェクトでは、暗黙的なusingによりusing System;を書かなくても動くことがあります。しかし、プロジェクト設定や古い形式では必要になる場合があります。

また、Consoleのスペルミスにも注意しましょう。C#は大文字と小文字を区別します。console.WriteLineではなく、正しくはConsole.WriteLineです。

7-3. 入力した数値を計算できない

C#コンソールアプリでよくあるつまずきが、入力した数値を計算できない問題です。

Console.ReadLineで受け取った値は、必ず文字列になります。たとえば、次のコードは計算のつもりでも、正しく数値計算できません。

C#
string a = Console.ReadLine();
string b = Console.ReadLine();

Console.WriteLine(a + b);

ユーザーが1020を入力した場合、結果は30ではなく1020になります。これは文字列として連結されているためです。

数値計算をするには、入力値を数値に変換します。

C#
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());

Console.WriteLine(a + b);

これで、1020を入力すると30と表示されます。

安全に処理したい場合は、int.TryParseを使いましょう。

7-4. 実行しても何も表示されない

C#コンソールアプリを実行しても何も表示されない場合は、まずConsole.WriteLineが書かれているか確認しましょう。

たとえば、次のコードは何も表示しません。

C#
int number = 10;

変数に値を入れているだけで、画面に表示する処理がないからです。

表示したい場合は、次のように書きます。

C#
int number = 10;
Console.WriteLine(number);

また、if文の条件が成り立っていないため、表示処理が実行されていない場合もあります。

C#
int score = 50;

if (score >= 80)
{
Console.WriteLine("高得点です");
}

このコードでは、scoreが80未満なので何も表示されません。必要に応じてelseを追加しましょう。

C#
int score = 50;

if (score >= 80)
{
Console.WriteLine("高得点です");
}
else
{
Console.WriteLine("条件に当てはまりません");
}

「実行しても何も表示されない」ときは、表示する命令があるか、条件が正しいかを確認することが大切です。

7-5. 日本語が文字化けする

C#コンソールアプリで日本語を表示したときに、文字化けすることがあります。

たとえば、次のようなコードを書いたとします。

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

環境によっては、コンソール画面で日本語が正しく表示されないことがあります。

対処法として、文字コードの設定を変更する方法があります。Windowsのコマンドプロンプトでは、次のコマンドでUTF-8に切り替えられる場合があります。

Bash
chcp 65001

また、C#側で出力エンコーディングを設定する方法もあります。

C#
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.WriteLine("こんにちは");

ただし、使用しているターミナルやフォントによっても表示結果は変わります。Visual Studioのデバッグコンソール、Windows Terminal、PowerShell、コマンドプロンプトなどで表示を確認してみるとよいでしょう。

日本語が文字化けする場合は、C#のコードだけでなく、実行しているコンソール環境の文字コードも確認する必要があります。

7-6. .NET Frameworkと.NETの違いで迷う

C#を学んでいると、「.NET Framework」と「.NET」という言葉が出てきて混乱することがあります。

.NET Frameworkは、主にWindows向けに長く使われてきた開発基盤です。古い業務システムや既存のWindowsアプリでは、今でも.NET Frameworkが使われていることがあります。

一方、現在の.NETは、WindowsだけでなくMacやLinuxにも対応した新しい開発基盤です。C#コンソールアプリ、Webアプリ、クラウドアプリなど、幅広い開発に使われます。

初心者がこれからC#コンソールアプリを学ぶなら、基本的には.NETを選ぶのがおすすめです。特別な理由がない限り、新しく学ぶ場合は.NET Frameworkではなく.NETを使うとよいでしょう。

Visual Studioでプロジェクトを作成するときに迷ったら、「コンソールアプリ」と表示されているC#用テンプレートを選び、フレームワークには新しい.NETを選択します。

8. C#コンソールアプリで作れる簡単なサンプル

8-1. 名前を入力してあいさつを表示するアプリ

最初に作るサンプルとしておすすめなのが、名前を入力してあいさつを表示するアプリです。

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

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

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

名前を入力してください
田中
こんにちは、田中さん

このサンプルでは、Console.WriteLineでメッセージを表示し、Console.ReadLineで入力を受け取り、変数を使って結果を表示しています。

非常に短いコードですが、C#コンソールアプリの基本である「入力」「処理」「出力」が含まれています。

8-2. 2つの数字を足し算する計算アプリ

次に、2つの数字を入力して足し算するアプリを作ってみましょう。

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

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

int result = number1 + number2;

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

実行例は次のとおりです。

1つ目の数字を入力してください
10
2つ目の数字を入力してください
20
計算結果は30です

このサンプルでは、Console.ReadLineで受け取った文字列をint.Parseで数値に変換しています。数値に変換することで、足し算などの計算ができるようになります。

より安全に書くなら、int.TryParseを使って入力チェックを追加するとよいでしょう。

C#
Console.WriteLine("1つ目の数字を入力してください");
bool success1 = int.TryParse(Console.ReadLine(), out int number1);

Console.WriteLine("2つ目の数字を入力してください");
bool success2 = int.TryParse(Console.ReadLine(), out int number2);

if (success1 && success2)
{
int result = number1 + number2;
Console.WriteLine($"計算結果は{result}です");
}
else
{
Console.WriteLine("数字を正しく入力してください");
}

8-3. if文を使った年齢判定アプリ

if文を使うと、入力された年齢によって表示を変えるアプリを作れます。

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

if (age >= 20)
{
Console.WriteLine("成人です");
}
else
{
Console.WriteLine("未成年です");
}

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

年齢を入力してください
25
成人です

このサンプルでは、age >= 20という条件を使っています。入力された年齢が20以上なら「成人です」、そうでなければ「未成年です」と表示します。

さらに条件を増やすこともできます。

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

if (age < 0)
{
Console.WriteLine("正しい年齢を入力してください");
}
else if (age < 20)
{
Console.WriteLine("未成年です");
}
else
{
Console.WriteLine("成人です");
}

このように、if文を使うとコンソールアプリに判断機能を持たせられます。

8-4. 繰り返し処理を使ったカウント表示アプリ

for文を使って、数字を順番に表示するアプリを作ってみましょう。

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

実行すると、1から10までの数字が順番に表示されます。

1
2
3
4
5
6
7
8
9
10

while文を使って同じ処理を書くこともできます。

C#
int i = 1;

while (i <= 10)
{
Console.WriteLine(i);
i++;
}

繰り返し処理は、同じ処理を何度も実行したいときに便利です。たとえば、複数人の名前を入力する、点数の合計を計算する、メニューを繰り返し表示する、といった場面で使えます。

8-5. 学習用ミニアプリを作るときのポイント

C#コンソールアプリの学習では、小さなミニアプリをたくさん作るのがおすすめです。

最初から大きなアプリを作ろうとすると、何から手をつければよいかわからなくなりがちです。まずは、1つの機能だけを持つ小さなアプリを作りましょう。

たとえば、次のようなミニアプリが練習に向いています。

名前を入力してあいさつするアプリ、年齢を判定するアプリ、点数から成績を表示するアプリ、2つの数字を計算するアプリ、数字をカウントするアプリ、簡単なおみくじアプリなどです。

学習用ミニアプリを作るときは、まず完成形を小さく決めることが大切です。「名前を入力したら表示する」「数字を2つ入力したら合計する」など、目的をはっきりさせましょう。

また、動いたら少しずつ改造するのも効果的です。足し算アプリができたら、引き算、掛け算、割り算を追加する。年齢判定アプリができたら、入力チェックを追加する。このように段階的に広げると、無理なく理解を深められます。

9. C#コンソールアプリを学んだ後のステップ

9-1. クラスとオブジェクト指向を学ぶ

C#コンソールアプリの基本に慣れたら、次に学びたいのがクラスとオブジェクト指向です。

C#はオブジェクト指向プログラミング言語です。オブジェクト指向とは、データと処理をひとまとまりにしてプログラムを作る考え方です。

たとえば、人を表すPersonクラスを作ると、次のように名前や年齢をまとめて扱えます。

C#
class Person
{
public string Name { get; set; }
public int Age { get; set; }

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

このクラスを使うと、次のように人物データを作れます。

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

person.Introduce();

クラスを学ぶと、コードを整理しやすくなります。Windowsアプリ、Webアプリ、ゲーム開発などに進む場合も、クラスとオブジェクト指向の理解は重要です。

9-2. ファイル読み書きに挑戦する

C#コンソールアプリに慣れたら、ファイルの読み書きにも挑戦してみましょう。

コンソールアプリでは、入力した内容をテキストファイルに保存したり、ファイルからデータを読み込んで表示したりできます。

文字列をファイルに保存する例は次のとおりです。

C#
File.WriteAllText("sample.txt", "こんにちは");

ファイルから文字列を読み込む例です。

C#
string text = File.ReadAllText("sample.txt");
Console.WriteLine(text);

ファイル操作を使うと、メモ帳アプリのような簡単なツールや、ログ出力、設定ファイルの読み込みなどができるようになります。

ただし、ファイルが存在しない場合や、保存場所に権限がない場合はエラーになることがあります。そのため、ファイル操作と一緒に例外処理も学ぶとよいでしょう。

9-3. デバッグ機能を使って処理の流れを確認する

C#の学習を効率よく進めるには、デバッグ機能を使うことが大切です。

デバッグとは、プログラムの動きを確認しながら、エラーや不具合の原因を探す作業です。Visual Studioでは、ブレークポイントを設定すると、その行で処理を一時停止できます。

たとえば、変数の値が思った通りになっているか確認したい場合、該当する行にブレークポイントを置いてF5で実行します。処理が止まったら、変数の中身を確認できます。

初心者のうちは、コードを見ただけでは処理の流れを理解しにくいことがあります。デバッグ機能を使えば、プログラムが上から順番にどのように実行されているかを確認できます。

特に、if文、for文、while文、メソッドの呼び出しを学ぶときは、デバッグを使うと理解が深まります。

9-4. Windowsアプリ・Webアプリ・ゲーム開発へ進む

C#コンソールアプリで基本を学んだ後は、目的に応じて次の分野へ進めます。

Windowsアプリを作りたい場合は、WPFやWindows Formsなどを学ぶとよいでしょう。ボタンやテキストボックスを使った画面付きアプリを作れるようになります。

Webアプリを作りたい場合は、ASP.NET Coreを学びます。ブラウザ上で動くアプリやWeb APIを作れるようになります。

ゲーム開発に興味がある場合は、Unityが有名です。UnityではC#を使ってゲームの動きやルールを作成します。

どの分野に進む場合でも、コンソールアプリで学んだ変数、if文、繰り返し、メソッド、クラスなどの知識は役立ちます。つまり、C#コンソールアプリは次の学習への土台になります。

9-5. C#学習を効率よく進めるためのおすすめ順序

C#を効率よく学ぶには、順番が大切です。

まずは、C#コンソールアプリで基本文法を学びましょう。最初に覚えるべき内容は、Console.WriteLineConsole.ReadLine、変数、データ型、if文、for文、while文、配列、List、メソッドです。

次に、クラスとオブジェクト指向を学びます。プロパティ、コンストラクタ、メソッド、インスタンスなどを理解すると、C#らしいコードを書けるようになります。

その後、ファイル操作、例外処理、デバッグ、LINQなどを学ぶと、実用的なアプリを作りやすくなります。

基礎が固まったら、自分の目的に合わせてWindowsアプリ、Webアプリ、ゲーム開発、クラウド開発などに進みましょう。

重要なのは、読むだけでなく実際にコードを書くことです。短いコードでもよいので、自分で入力して実行し、結果を確認する習慣をつけましょう。

10. csharp consoleに関するよくある質問

10-1. C#コンソールアプリは何に使う?

C#コンソールアプリは、文字ベースで動くシンプルなアプリを作るために使います。

学習用としては、C#の基本文法を練習するのに最適です。変数、条件分岐、繰り返し、配列、メソッド、クラスなどを確認しながら学べます。

実用面では、ファイル整理ツール、ログ出力ツール、データ変換ツール、バッチ処理、簡単な自動化ツールなどに使われます。画面が不要な処理や、定期的に実行する処理では、コンソールアプリが便利です。

見た目はシンプルですが、使い方次第で実務にも活用できます。

10-2. Visual StudioなしでもC#コンソールアプリは作れる?

Visual StudioなしでもC#コンソールアプリは作れます。

.NET SDKをインストールすれば、コマンドラインでC#コンソールアプリを作成できます。

Bash
dotnet new console
dotnet run

コードを書くエディタとしては、Visual Studio Codeや他のテキストエディタを使えます。

ただし、初心者にはVisual Studioのほうがわかりやすい場合があります。テンプレート作成、実行、エラー表示、デバッグなどが画面上で操作できるためです。

コマンドラインに慣れている人や、Macで学習する人は、Visual Studio Codeと.NET SDKの組み合わせでも十分に学習できます。

10-3. C#コンソールアプリとCUIアプリは同じ?

C#コンソールアプリは、CUIアプリの一種と考えられます。

CUIは「Character User Interface」の略で、文字を使って操作するユーザーインターフェースのことです。コンソールアプリも、文字を表示したり、キーボード入力を受け取ったりして動くため、CUIアプリに含まれます。

一方、ボタンやウィンドウを使って操作するアプリはGUIアプリと呼ばれます。GUIは「Graphical User Interface」の略です。

つまり、C#コンソールアプリは、C#で作る文字ベースのCUIアプリと考えるとわかりやすいです。

10-4. 初心者は.NETと.NET Frameworkのどちらを選ぶべき?

初心者がこれからC#コンソールアプリを学ぶなら、基本的には.NETを選ぶのがおすすめです。

.NET Frameworkは、主にWindows向けの古い開発基盤です。既存の業務システムでは使われていることがありますが、新しくC#を学ぶ場合は、現在の.NETを使うほうが学習しやすいです。

.NETは、Windows、Mac、Linuxなどに対応しており、コンソールアプリ、Webアプリ、クラウドアプリなど幅広い開発に使えます。

Visual Studioでプロジェクトを作成するときは、C#の「コンソールアプリ」テンプレートを選び、フレームワークには新しい.NETを選ぶとよいでしょう。

10-5. C#コンソールアプリを終了させる方法は?

C#コンソールアプリは、処理が最後まで実行されると自動的に終了します。

たとえば、次のコードは文字を表示したあとに終了します。

C#
Console.WriteLine("終了します");

途中で明示的に終了したい場合は、returnを使えます。

C#
Console.WriteLine("処理を終了します");
return;

従来のMainメソッド内であれば、return;を書くことで、その時点で処理を終了できます。

また、Environment.Exitを使う方法もあります。

C#
Environment.Exit(0);

ただし、初心者のうちは無理にEnvironment.Exitを使う必要はありません。基本的には、処理が最後まで到達すればアプリは終了すると覚えておけば十分です。

コンソール画面がすぐ閉じて結果を確認できない場合は、最後に次のコードを追加します。

C#
Console.ReadLine();

これにより、Enterキーが押されるまで画面を開いたままにできます。

まとめ

csharp console、つまりC#コンソールアプリは、C#初心者が最初に学ぶのに最適なアプリ形式です。文字を表示する、入力を受け取る、計算する、条件分岐する、繰り返し処理を行うといったプログラムの基本をシンプルに学べます。

C#コンソールアプリを作るには、Visual StudioやVisual Studio Code、.NET SDKなどの開発環境を準備します。初心者にはVisual Studioがおすすめですが、コマンドラインでdotnet new consoledotnet runを使って開発することもできます。

基本となるコードは、Console.WriteLineによる出力と、Console.ReadLineによる入力です。そこから、変数、if文、for文、while文、配列、List、メソッド、例外処理などを少しずつ学んでいくと、C#の基礎力が身につきます。

コンソールアプリで基礎を固めた後は、クラスとオブジェクト指向、ファイル操作、デバッグ、Windowsアプリ、Webアプリ、ゲーム開発などへ学習を広げられます。

C#をしっかり学びたいなら、まずは小さなコンソールアプリを実際に作って動かしてみることが大切です。短いコードでも、書いて実行して結果を見ることで、C#の理解は確実に深まっていきます。