C#で最初に触れるメソッドの1つがConsole.WriteLineです。
画面に文字や数値を表示する標準出力は、小さなサンプルから本格的なアプリまで、あらゆる場面で使われます。
本記事では、Console.WriteLineの基本的な使い方から、書式指定やデバッグ活用などの応用までを、サンプルコードと図解を交えながら丁寧に解説していきます。
【C#】Console.WriteLineとは?標準出力の基本から応用まで
Console.WriteLineの役割と「標準出力」

Console.WriteLineは、C#で標準出力と呼ばれる仕組みを使って、文字や数値、オブジェクトの情報などをコンソール画面に表示するメソッドです。
標準出力は通常、黒い画面(コンソールウィンドウ)に接続されていますが、リダイレクトすることでファイルに書き出したり、別のプログラムへ渡したりすることもできます。
また、Console.WriteLineは行末に自動的に改行を付けて出力するという特徴があります。
改行を付けずに出力したいときはConsole.Writeを使います。
Console.WriteLineの基本的な使い方
文字列を表示する最もシンプルな例
まずは、もっとも基本的な「文字列を1行表示する」サンプルです。
using System;
class Program
{
static void Main()
{
// 文字列を1行表示します
Console.WriteLine("Hello, World!");
}
}
このプログラムを実行すると、コンソールには次のように表示されます。
Hello, World!
ここでのポイントは、ダブルクォーテーションで囲んだ部分が文字列リテラルであり、そのまま画面に出力されるという点です。
数値や変数を表示する
Console.WriteLineは、数値や変数もそのまま渡して表示できます。
using System;
class Program
{
static void Main()
{
int x = 10;
int y = 20;
// 数値をそのまま表示
Console.WriteLine(123);
// 変数の値を表示
Console.WriteLine(x);
// 計算結果を表示
Console.WriteLine(x + y);
}
}
123
10
30
引数の型に応じて自動的に文字列へ変換してくれるため、数値やbool、DateTimeなども、そのままConsole.WriteLineに渡して問題ありません。
改行あり(WriteLine)と改行なし(Write)の違い
WriteLineとWriteを見比べる

ConsoleクラスにはWriteLineとWriteの2つがあり、違いは末尾の改行があるかないかです。
using System;
class Program
{
static void Main()
{
// WriteLineは改行あり
Console.WriteLine("A");
Console.WriteLine("B");
Console.WriteLine("C");
// 区切り線
Console.WriteLine("----");
// Writeは改行なし
Console.Write("A");
Console.Write("B");
Console.Write("C");
}
}
実行結果は次のとおりです。
A
B
C
----
ABC
複数の要素を同じ行に続けて表示したいときはWrite、1行ごとに区切って読みやすくしたいときはWriteLineを使い分けます。
文字列と変数を組み合わせて出力する方法
1. 文字列結合(+)を使う方法
最も素朴な方法は+演算子で文字列を連結する方法です。
using System;
class Program
{
static void Main()
{
string name = "Taro";
int age = 25;
// 文字列結合で出力
Console.WriteLine("名前: " + name + ", 年齢: " + age + "歳");
}
}
名前: Taro, 年齢: 25歳
この方法は簡単ですが、項目が増えるとコードが読みにくくなるという欠点があります。
2. 補間文字列(文字列補間, C# 6.0以降)
現在もっともよく使われるのが「補間文字列」です。
先頭に$を付けて、文字列の中に{変数}の形で埋め込みます。
using System;
class Program
{
static void Main()
{
string name = "Taro";
int age = 25;
// 補間文字列($"...")で出力
Console.WriteLine($"名前: {name}, 年齢: {age}歳");
}
}
実行結果は先ほどと同じですが、コードの見通しが良くなっています。
名前: Taro, 年齢: 25歳
文章の中にそのまま変数名を書けるため、ログやメッセージの形成に非常に便利です。
3. 旧来の書式指定(Console.WriteLine(“{0}”, value))
古くからある方法として、書式指定文字列とプレースホルダーを使う書き方もあります。
using System;
class Program
{
static void Main()
{
string name = "Taro";
int age = 25;
// {0}, {1} がそれぞれの引数に対応
Console.WriteLine("名前: {0}, 年齢: {1}歳", name, age);
}
}
出力は同様です。
名前: Taro, 年齢: 25歳
既存コードや古いサンプルでよく見かける書き方ですが、新しく書くコードでは補間文字列の利用が推奨されます。
書式指定で見た目を整える
数値の書式指定(桁区切りや小数点)

Console.WriteLineでは、ToStringや書式指定文字列を使って数値などの見た目を整えることができます。
using System;
class Program
{
static void Main()
{
int number = 1234567;
double rate = 0.1234;
// 桁区切り(カンマ)を付ける(N0: 小数なし)
Console.WriteLine(number.ToString("N0"));
// 小数点以下2桁で表示(F2)
Console.WriteLine(rate.ToString("F2"));
// 補間文字列の中で書式指定
Console.WriteLine($"金額: {number:N0} 円");
Console.WriteLine($"割合: {rate:P1}"); // Pはパーセント表示
}
}
1,234,567
0.12
金額: 1,234,567 円
12.3 %
書式指定子を使うことで、ユーザーにとって読みやすい形に整えられることがわかります。
日付や時刻の書式指定
日付や時刻も書式指定を行うことで、さまざまなフォーマットで出力できます。
using System;
class Program
{
static void Main()
{
DateTime now = DateTime.Now;
// デフォルトの書式
Console.WriteLine(now);
// 例: yyyy/MM/dd HH:mm:ss 形式
Console.WriteLine(now.ToString("yyyy/MM/dd HH:mm:ss"));
// 補間文字列で書式指定
Console.WriteLine($"今日は {now:yyyy年MM月dd日} です");
}
}
想定される出力例は次のとおりです。
2025/12/29 14:23:45
2025/12/29 14:23:45
今日は 2025年12月29日 です
ToStringの書式と補間文字列内の:以降の書式指定は同じ意味なので、覚えておくと便利です。
Console.WriteLineでデバッグを効率化する
変数の値をざっと確認する

本格的なデバッガを使うのが理想ですが、Console.WriteLineによる簡易デバッグは今でも非常によく行われます。
using System;
class Program
{
static void Main()
{
int total = 0;
for (int i = 1; i <= 5; i++)
{
total += i;
// 途中経過を出力して動きを確認
Console.WriteLine($"i = {i}, total = {total}");
}
Console.WriteLine($"最終的な合計: {total}");
}
}
実行結果のイメージは次のようになります。
i = 1, total = 1
i = 2, total = 3
i = 3, total = 6
i = 4, total = 10
i = 5, total = 15
最終的な合計: 15
どのタイミングで値が想定と違うのかを目視で追いかけやすくなるため、ロジック検証の際に役立ちます。
ラベルを付けて出力内容をわかりやすくする
デバッグ出力は何を表示しているのかが一目でわかるようにすると読みやすくなります。
using System;
class Program
{
static void Main()
{
string userName = "Taro";
int score = 80;
Console.WriteLine($"[DEBUG] userName = {userName}");
Console.WriteLine($"[DEBUG] score = {score}");
}
}
[DEBUG] userName = Taro
[DEBUG] score = 80
実運用ではDebugクラスやロガーの利用が推奨されますが、コンソールアプリの学習段階ではConsole.WriteLineだけでも十分有用です。
Console.WriteLineとエンコード・日本語の注意点
文字化けを防ぐためのConsole.OutputEncoding
日本語を扱う場合、環境によっては文字化けが発生することがあります。
その対策としてConsole.OutputEncodingをUTF-8に設定する方法があります。
using System;
using System.Text;
class Program
{
static void Main()
{
// 出力の文字コードをUTF-8に設定
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("こんにちは、世界");
}
}
こんにちは、世界
環境依存の部分もあるため、開発環境のコンソール設定と合わせて確認することが大切です。
まとめ
Console.WriteLineは、C#でもっとも頻繁に使われる標準出力メソッドです。
基本の文字列出力に始まり、変数の表示、補間文字列や書式指定による整形、デバッグ用ログとしての利用など、用途は多岐にわたります。
WriteLineとWriteの違い、補間文字列を中心とした出力の書き方、数値や日付の書式指定を押さえておけば、多くのコンソールアプリで困ることはありません。
まずは簡単な表示から試し、徐々に書式指定やデバッグ出力などの応用テクニックを取り入れて、Console.WriteLineを自在に使いこなしていきましょう。
