C#で出力する方法を完全解説|Console.WriteLineからファイル出力・デバッグ表示まで初心者向けにわかる

はじめに

C#でプログラムを学び始めると、最初に出てくるのが「出力」です。たとえば、画面に「Hello World」と表示したり、計算結果を確認したり、処理の途中経過を表示したりする場面で出力を使います。

C#の出力方法には、主に次のような種類があります。

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

これはコンソール画面に文字を表示する基本的な方法です。

しかし、C#の出力はこれだけではありません。ファイルにテキストを書き込む方法、Visual Studioの出力ウィンドウにデバッグ情報を表示する方法、ログのように日時付きで記録する方法など、用途によってさまざまな出力方法があります。

この記事では、C#で出力する方法を初心者向けにわかりやすく解説します。Console.WriteLineの基本から、Console.Writeとの違い、ファイル出力、デバッグ出力、出力されないときの原因と対処法まで、実践的なサンプルコードを使いながら順番に確認していきます。

1. C#の「出力」とは?初心者がまず知っておきたい基本

C#における「出力」とは、プログラムの処理結果や情報を外部に表示・保存することです。

たとえば、次のような処理が出力にあたります。

C#
Console.WriteLine("処理が完了しました");

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

処理が完了しました

プログラムは内部でさまざまな計算や判定を行いますが、その結果を人間が確認できる形にするためには出力が必要です。出力を使うことで、プログラムが正しく動いているか、変数にどのような値が入っているか、エラーがどこで発生しているかを確認できます。

1-1. C#で出力できる主な内容

C#では、文字列、数値、変数、計算結果、日付、配列、リスト、エラー情報など、さまざまな内容を出力できます。

たとえば、文字列を出力する場合は次のように書きます。

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

数値を出力する場合は、数値をそのまま指定できます。

C#
Console.WriteLine(100);

変数の値も出力できます。

C#
int age = 20;
Console.WriteLine(age);

計算結果も出力できます。

C#
Console.WriteLine(10 + 5);

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

15

このように、C#の出力では「プログラム内の情報を見える形にする」ことができます。初心者のうちは、変数の中身や処理結果を確認するためにConsole.WriteLineをよく使います。

1-2. コンソール出力・ファイル出力・デバッグ出力の違い

C#の出力方法は、出力先によって大きく分けることができます。

コンソール出力は、黒い画面のコンソールやターミナルに文字を表示する方法です。

C#
Console.WriteLine("コンソールに出力します");

ファイル出力は、テキストファイルなどに文字を書き込む方法です。

C#
File.WriteAllText("sample.txt", "ファイルに出力します");

デバッグ出力は、Visual Studioなどの開発環境の出力ウィンドウに情報を表示する方法です。

C#
Debug.WriteLine("デバッグ用の出力です");

それぞれの違いを簡単にまとめると、次のようになります。

出力方法主な出力先主な用途
Console.WriteLineコンソール画面学習、確認、CLIアプリ
File.WriteAllTextファイル結果保存、ログ保存
Debug.WriteLine出力ウィンドウデバッグ、開発中の確認
Trace.WriteLine出力ウィンドウやログ診断、トレース情報

初心者が最初に覚えるべきなのはConsole.WriteLineです。その後、ファイルに保存したい場合はFile.WriteAllTextやStreamWriter、開発中の確認にはDebug.WriteLineを使うとよいでしょう。

1-3. 出力方法を使い分ける判断基準

C#でどの出力方法を使うべきかは、目的によって変わります。

画面に結果を表示したいだけなら、Console.WriteLineを使います。

C#
Console.WriteLine("結果を表示します");

処理結果をファイルに残したい場合は、File.WriteAllTextやStreamWriterを使います。

C#
File.WriteAllText("result.txt", "処理結果です");

開発中に変数の中身を確認したい場合は、Debug.WriteLineを使います。

C#
Debug.WriteLine("変数の確認用メッセージ");

判断基準としては、次のように考えるとわかりやすいです。

やりたいこと使う出力方法
コンソール画面に表示したいConsole.WriteLine
改行なしで表示したいConsole.Write
ファイルに新規保存したいFile.WriteAllText
ファイルに追記したいFile.AppendAllText
大量のテキストを効率よく書き込みたいStreamWriter
デバッグ中だけ確認したいDebug.WriteLine
診断情報を出したいTrace.WriteLine

まずはConsole.WriteLineを使い、慣れてきたらファイル出力やデバッグ出力を覚えていくのがおすすめです。

2. Console.WriteLineでコンソールに出力する基本

C#で最も基本的な出力方法がConsole.WriteLineです。Console.WriteLineを使うと、コンソール画面に文字列や数値を表示できます。

プログラミング学習でよく見る「Hello World」も、Console.WriteLineを使って出力します。

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

実行結果は次のとおりです。

Hello World

Console.WriteLineは、出力したあと自動で改行されるのが特徴です。そのため、複数回呼び出すと1行ずつ表示されます。

C#
Console.WriteLine("1行目");
Console.WriteLine("2行目");
Console.WriteLine("3行目");

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

1行目
2行目
3行目

2-1. Console.WriteLineの基本構文

Console.WriteLineの基本構文は次のとおりです。

C#
Console.WriteLine(出力したい内容);

文字列を出力する場合は、ダブルクォーテーションで囲みます。

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

数値を出力する場合は、ダブルクォーテーションで囲まずに書けます。

C#
Console.WriteLine(123);

変数を出力する場合は、変数名を指定します。

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

Console.WriteLineは、C#の基本的な出力処理として非常によく使われます。特に初心者のうちは、プログラムの動作確認に何度も使うことになります。

2-2. 文字列を出力する方法

文字列を出力するには、出力したい文字をダブルクォーテーションで囲んでConsole.WriteLineに渡します。

C#
Console.WriteLine("C#を勉強中です");

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

C#を勉強中です

日本語も問題なく出力できます。

C#
Console.WriteLine("こんにちは、世界!");

実行結果は次のとおりです。

こんにちは、世界!

文字列を出力するときに注意したいのは、文字列を必ずダブルクォーテーションで囲むことです。

次のコードは正しく動きます。

C#
Console.WriteLine("Hello");

しかし、次のようにダブルクォーテーションを忘れるとエラーになります。

C#
Console.WriteLine(Hello);

この場合、C#はHelloを文字列ではなく変数名として解釈しようとします。Helloという変数が定義されていなければ、コンパイルエラーになります。

2-3. 数値や変数の値を出力する方法

Console.WriteLineでは、数値をそのまま出力できます。

C#
Console.WriteLine(100);
Console.WriteLine(3.14);

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

100
3.14

変数の値を出力することもできます。

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

実行結果は次のとおりです。

85

文字列型の変数も出力できます。

C#
string name = "佐藤";
Console.WriteLine(name);

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

佐藤

計算結果を変数に入れて出力することもできます。

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

Console.WriteLine(total);

実行結果は次のとおりです。

3600

このようにConsole.WriteLineを使うと、変数の中身を簡単に確認できます。プログラムが思ったとおりに動かないときは、変数を出力して中身を確認すると原因を見つけやすくなります。

2-4. 複数の値を組み合わせて出力する方法

文字列と変数を組み合わせて出力したい場合は、いくつかの書き方があります。

まず、文字列連結を使う方法です。

C#
string name = "山田";
int age = 25;

Console.WriteLine("名前は" + name + "です。年齢は" + age + "歳です。");

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

名前は山田です。年齢は25歳です。

次に、文字列補間を使う方法です。文字列の前に$を付け、変数を{}の中に書きます。

C#
string name = "山田";
int age = 25;

Console.WriteLine($"名前は{name}です。年齢は{age}歳です。");

実行結果は同じです。

名前は山田です。年齢は25歳です。

初心者には、文字列補間のほうが読みやすくおすすめです。

計算式を直接埋め込むこともできます。

C#
int price = 500;
int count = 4;

Console.WriteLine($"合計金額は{price * count}円です。");

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

合計金額は2000円です。

2-5. Console.WriteLineを使うために必要なusingと名前空間

Console.WriteLineは、System名前空間に含まれるConsoleクラスのメソッドです。

古い書き方や一部のプロジェクトでは、ファイルの先頭に次のusingが必要です。

C#
using System;

全体のコード例は次のようになります。

C#
using System;

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

一方、最近のC#プロジェクトでは、暗黙的なusingやトップレベルステートメントにより、次のように短く書ける場合があります。

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

ただし、初心者のうちは次の基本形も理解しておくと安心です。

C#
using System;

namespace SampleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("こんにちは");
}
}
}

Console.WriteLineConsoleはクラス名、WriteLineはメソッド名です。C#では大文字と小文字が区別されるため、console.writelineのように書くとエラーになります。

3. Console.WriteとConsole.WriteLineの違い

C#でコンソールに出力する方法には、Console.WriteLineのほかにConsole.Writeがあります。

どちらもコンソール画面に文字を表示するためのメソッドですが、違いは「出力後に改行するかどうか」です。

Console.WriteLineは出力後に改行します。

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

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

こんにちは
C#

一方、Console.Writeは出力後に改行しません。

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

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

こんにちはC#

3-1. Console.WriteLineは改行ありで出力する

Console.WriteLineは、指定した内容を出力したあとに自動で改行します。

C#
Console.WriteLine("A");
Console.WriteLine("B");
Console.WriteLine("C");

実行結果は次のとおりです。

A
B
C

1つの出力を1行ずつ表示したい場合に便利です。

たとえば、処理の流れを確認する場合にもよく使います。

C#
Console.WriteLine("処理開始");
Console.WriteLine("計算中");
Console.WriteLine("処理終了");

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

処理開始
計算中
処理終了

初心者が最初に使う出力方法としては、Console.WriteLineが最もわかりやすいです。

3-2. Console.Writeは改行なしで出力する

Console.Writeは、出力後に改行しません。

C#
Console.Write("A");
Console.Write("B");
Console.Write("C");

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

ABC

同じ行に続けて表示したい場合に使います。

たとえば、ユーザーに入力を促すときはConsole.Writeがよく使われます。

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

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

実行すると、次のように入力欄が同じ行に表示されます。

名前を入力してください: 

ここでユーザーが名前を入力すると、その内容を使って次の行に結果を表示できます。

3-3. 入力待ちやメニュー表示での使い分け

Console.WriteとConsole.WriteLineは、入力待ちやメニュー表示で使い分けると便利です。

たとえば、メニューを表示する場合はConsole.WriteLineを使うと見やすくなります。

C#
Console.WriteLine("メニューを選択してください");
Console.WriteLine("1: 新規作成");
Console.WriteLine("2: 編集");
Console.WriteLine("3: 終了");

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

メニューを選択してください
1: 新規作成
2: 編集
3: 終了

一方、入力を促すメッセージではConsole.Writeを使うと自然です。

C#
Console.Write("番号を入力してください: ");
string input = Console.ReadLine();

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

番号を入力してください: 

ユーザーが入力する位置がメッセージのすぐ後ろになるため、入力フォームのように見せることができます。

3-4. よくある出力結果の違いをサンプルで確認

Console.WriteLineとConsole.Writeの違いを、サンプルで確認してみましょう。

C#
Console.WriteLine("りんご");
Console.WriteLine("みかん");
Console.WriteLine("バナナ");

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

りんご
みかん
バナナ

次に、Console.Writeを使います。

C#
Console.Write("りんご");
Console.Write("みかん");
Console.Write("バナナ");

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

りんごみかんバナナ

スペースを入れたい場合は、文字列の中に空白を含めます。

C#
Console.Write("りんご ");
Console.Write("みかん ");
Console.Write("バナナ");

実行結果は次のとおりです。

りんご みかん バナナ

最後だけ改行したい場合は、最後にConsole.WriteLineを使います。

C#
Console.Write("りんご ");
Console.Write("みかん ");
Console.WriteLine("バナナ");

このように、改行したい場面ではConsole.WriteLine、同じ行に続けたい場面ではConsole.Writeを使います。

4. C#で見やすく出力する方法

C#で出力するときは、ただ値を表示するだけでなく、見やすく整えることも大切です。

たとえば、次のように数値だけが表示されても、何の値かわかりにくい場合があります。

C#
Console.WriteLine(1500);

実行結果は次のとおりです。

1500

これよりも、説明を付けて出力したほうがわかりやすくなります。

C#
Console.WriteLine("合計金額は1500円です");

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

合計金額は1500円です

C#では、文字列連結、文字列補間、string.Format、書式指定などを使って、出力内容を見やすく整えることができます。

4-1. 文字列連結で出力する方法

文字列連結とは、+演算子を使って文字列や変数をつなげる方法です。

C#
string name = "田中";
int age = 30;

Console.WriteLine("名前: " + name);
Console.WriteLine("年齢: " + age);

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

名前: 田中
年齢: 30

1行でまとめて出力することもできます。

C#
Console.WriteLine("名前は" + name + "です。年齢は" + age + "歳です。");

実行結果は次のとおりです。

名前は田中です。年齢は30歳です。

文字列連結はわかりやすい反面、変数が増えるとコードが読みにくくなりやすいです。

C#
Console.WriteLine("商品名: " + itemName + ", 価格: " + price + "円, 個数: " + count);

このような場合は、次に紹介する文字列補間を使うと読みやすくなります。

4-2. 文字列補間を使って出力する方法

文字列補間は、文字列の中に変数や式を直接埋め込める書き方です。文字列の前に$を付け、埋め込みたい値を{}で囲みます。

C#
string name = "田中";
int age = 30;

Console.WriteLine($"名前は{name}です。年齢は{age}歳です。");

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

名前は田中です。年齢は30歳です。

計算式を入れることもできます。

C#
int price = 800;
int count = 3;

Console.WriteLine($"合計金額は{price * count}円です。");

実行結果は次のとおりです。

合計金額は2400円です。

文字列補間は、C#で出力を見やすく書くうえで非常に便利です。初心者にもおすすめの書き方です。

複数の値を整理して出力する場合も読みやすくなります。

C#
string product = "ノート";
int price = 120;
int quantity = 5;

Console.WriteLine($"商品: {product}, 単価: {price}円, 個数: {quantity}, 合計: {price * quantity}円");

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

商品: ノート, 単価: 120円, 個数: 5, 合計: 600円

4-3. string.Formatで書式を整える方法

string.Formatを使うと、プレースホルダーに値を埋め込んで文字列を作成できます。

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

Console.WriteLine(string.Format("名前は{0}です。年齢は{1}歳です。", name, age));

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

名前は佐藤です。年齢は28歳です。

{0}には1つ目の値、{1}には2つ目の値が入ります。

数値の表示形式を指定することもできます。

C#
int price = 123456;

Console.WriteLine(string.Format("価格: {0:N0}円", price));

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

価格: 123,456円

現在では文字列補間を使う場面が多いですが、string.Formatも既存コードや古いC#の書き方で見かけることがあります。

同じ内容は文字列補間でも書けます。

C#
int price = 123456;

Console.WriteLine($"価格: {price:N0}円");

4-4. 数値・小数・日付をフォーマットして出力する方法

C#では、数値や日付を見やすい形式に整えて出力できます。

整数を3桁区切りで表示するには、N0を使います。

C#
int amount = 1234567;

Console.WriteLine($"{amount:N0}円");

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

1,234,567円

小数点以下の桁数を指定するには、Fを使います。

C#
double rate = 3.14159;

Console.WriteLine($"{rate:F2}");

実行結果は次のとおりです。

3.14

パーセント表示にすることもできます。

C#
double ratio = 0.875;

Console.WriteLine($"{ratio:P1}");

実行結果は環境によって多少変わることがありますが、一般的には次のようになります。

87.5%

日付をフォーマットして出力するには、DateTimeを使います。

C#
DateTime now = DateTime.Now;

Console.WriteLine($"{now:yyyy/MM/dd}");
Console.WriteLine($"{now:HH:mm:ss}");
Console.WriteLine($"{now:yyyy年MM月dd日 HH時mm分ss秒}");

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

2026/06/06
14:30:15
2026年06月06日 14時30分15秒

よく使う書式をまとめると、次のようになります。

書式意味
N03桁区切り、小数なし1,234
F2小数点以下2桁3.14
P1パーセント、小数1桁87.5%
yyyy/MM/dd年/月/日2026/06/06
HH:mm:ss時:分:秒14:30:15

4-5. 配列やリストの中身を出力する方法

配列をそのままConsole.WriteLineで出力すると、期待どおりに中身が表示されないことがあります。

C#
int[] numbers = { 1, 2, 3 };

Console.WriteLine(numbers);

実行結果は次のようになることがあります。

System.Int32[]

これは配列の中身ではなく、配列オブジェクトの型情報が表示されているためです。

配列の中身を出力したい場合は、string.Joinを使うと便利です。

C#
int[] numbers = { 1, 2, 3 };

Console.WriteLine(string.Join(", ", numbers));

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

1, 2, 3

文字列の配列でも同じように使えます。

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

Console.WriteLine(string.Join(" / ", fruits));

実行結果は次のとおりです。

りんご / みかん / バナナ

リストの場合も同じです。

C#
List<string> names = new List<string> { "田中", "佐藤", "鈴木" };

Console.WriteLine(string.Join(", ", names));

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

田中, 佐藤, 鈴木

1つずつ改行して表示したい場合は、foreachを使います。

C#
List<string> names = new List<string> { "田中", "佐藤", "鈴木" };

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

実行結果は次のとおりです。

田中
佐藤
鈴木

5. C#でファイルに出力する方法

C#では、コンソール画面だけでなく、テキストファイルに出力することもできます。

ファイル出力を使うと、処理結果やログを保存できます。たとえば、計算結果をファイルに残したり、アプリケーションの実行履歴を記録したりできます。

簡単なファイル出力は、File.WriteAllTextで実現できます。

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

このコードを実行すると、output.txtというファイルに「こんにちは」と書き込まれます。

5-1. ファイル出力で使う主なクラス

C#でファイル出力を行うときによく使うクラスには、次のようなものがあります。

クラス・メソッド用途
File.WriteAllTextテキストを一括で書き込む
File.AppendAllTextテキストを既存ファイルに追記する
StreamWriter複数行や大量データを書き込む
File.WriteAllLines複数行をまとめて書き込む

これらは主にSystem.IO名前空間に含まれています。

C#
using System.IO;

ただし、最近のプロジェクトでは暗黙的なusingにより、明示的に書かなくても使える場合があります。

初心者がまず覚えるなら、次の順番がおすすめです。

C#
File.WriteAllText("sample.txt", "最初の書き込み");
File.AppendAllText("sample.txt", "追記する内容");

より細かく制御したい場合や、複数行を少しずつ出力したい場合はStreamWriterを使います。

5-2. File.WriteAllTextでテキストを書き込む方法

File.WriteAllTextは、指定したファイルに文字列を書き込むメソッドです。

C#
using System;
using System.IO;

class Program
{
static void Main()
{
File.WriteAllText("message.txt", "C#でファイル出力しました");
Console.WriteLine("ファイルに書き込みました");
}
}

このコードを実行すると、message.txtというファイルが作成され、その中に次の内容が書き込まれます。

C#でファイル出力しました

すでに同じ名前のファイルが存在する場合、File.WriteAllTextは内容を上書きします。

C#
File.WriteAllText("message.txt", "1回目の内容");
File.WriteAllText("message.txt", "2回目の内容");

この場合、最終的にファイルに残るのは次の内容です。

2回目の内容

上書きしたくない場合は、次に紹介するFile.AppendAllTextを使います。

5-3. File.AppendAllTextで追記する方法

File.AppendAllTextは、既存ファイルの末尾に文字列を追加するメソッドです。

C#
using System.IO;

File.AppendAllText("log.txt", "1行目のログ\n");
File.AppendAllText("log.txt", "2行目のログ\n");

実行後、log.txtの内容は次のようになります。

1行目のログ
2行目のログ

改行を入れたい場合は、\nEnvironment.NewLineを使います。

C#
File.AppendAllText("log.txt", "ログを追加しました" + Environment.NewLine);

Environment.NewLineを使うと、実行環境に合った改行コードを使えます。

日時付きでログのように追記することもできます。

C#
string message = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理を開始しました";
File.AppendAllText("log.txt", message + Environment.NewLine);

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

2026/06/06 14:30:15 処理を開始しました

5-4. StreamWriterでファイルに出力する方法

StreamWriterを使うと、ファイルに対して複数行を効率よく書き込めます。

C#
using System.IO;

using (StreamWriter writer = new StreamWriter("data.txt"))
{
writer.WriteLine("1行目");
writer.WriteLine("2行目");
writer.WriteLine("3行目");
}

実行後、data.txtの内容は次のようになります。

1行目
2行目
3行目

usingを使うことで、書き込みが終わったあとにファイルを自動的に閉じることができます。ファイルを開いたままにすると、別の処理でファイルにアクセスできなくなることがあるため、基本的にはusingを使うのがおすすめです。

追記モードでStreamWriterを使いたい場合は、第2引数にtrueを指定します。

C#
using (StreamWriter writer = new StreamWriter("data.txt", true))
{
writer.WriteLine("追記する行");
}

大量のデータをループで書き込む場合にもStreamWriterは便利です。

C#
using (StreamWriter writer = new StreamWriter("numbers.txt"))
{
for (int i = 1; i <= 10; i++)
{
writer.WriteLine($"番号: {i}");
}
}

5-5. ファイル出力時のパス指定と注意点

ファイル出力では、パスの指定に注意が必要です。

次のようにファイル名だけを指定した場合、実行ファイルの作業フォルダにファイルが作成されます。

C#
File.WriteAllText("sample.txt", "テスト");

出力先を明確にしたい場合は、絶対パスを指定できます。

C#
File.WriteAllText(@"C:\Temp\sample.txt", "テスト");

Windowsのパスでは\を使いますが、C#では\がエスケープ文字として扱われます。そのため、パスを書くときは次のどちらかの方法を使います。

1つ目は、バックスラッシュを2つ重ねる方法です。

C#
File.WriteAllText("C:\\Temp\\sample.txt", "テスト");

2つ目は、文字列の前に@を付ける方法です。

C#
File.WriteAllText(@"C:\Temp\sample.txt", "テスト");

相対パスを使うこともできます。

C#
File.WriteAllText(@"logs\app.log", "ログ内容");

ただし、指定したフォルダが存在しない場合はエラーになります。フォルダがない可能性がある場合は、事前に作成します。

C#
Directory.CreateDirectory("logs");
File.WriteAllText(@"logs\app.log", "ログ内容");

5-6. ファイル出力で発生しやすいエラーと対処法

ファイル出力では、次のようなエラーが発生することがあります。

原因内容対処法
フォルダが存在しない指定したパスにフォルダがないDirectory.CreateDirectoryを使う
権限がない書き込み権限のない場所に保存しようとした保存先を変更する
ファイルが使用中他のアプリがファイルを開いているファイルを閉じる
パスが不正使用できない文字が含まれているパスを見直す

例外処理を使うと、エラー内容を出力できます。

C#
try
{
File.WriteAllText(@"C:\Temp\sample.txt", "テスト");
Console.WriteLine("ファイル出力に成功しました");
}
catch (Exception ex)
{
Console.WriteLine("ファイル出力に失敗しました");
Console.WriteLine(ex.Message);
}

フォルダを作成してからファイル出力する例は次のとおりです。

C#
try
{
string folderPath = "logs";
string filePath = Path.Combine(folderPath, "app.log");

Directory.CreateDirectory(folderPath);
File.AppendAllText(filePath, "ログを出力しました" + Environment.NewLine);

Console.WriteLine("ログを書き込みました");
}
catch (Exception ex)
{
Console.WriteLine($"エラーが発生しました: {ex.Message}");
}

ファイル出力では、パス、権限、フォルダの有無を意識することが大切です。

6. C#でデバッグ表示する方法

C#では、コンソール画面ではなく、開発環境の出力ウィンドウに情報を表示することもできます。これをデバッグ出力と呼ぶことがあります。

代表的な方法がDebug.WriteLineです。

C#
Debug.WriteLine("デバッグ出力です");

Visual Studioで実行すると、出力ウィンドウにメッセージが表示されます。コンソール画面に表示する必要はないけれど、開発中に変数の中身や処理の流れを確認したい場合に便利です。

6-1. Debug.WriteLineでVisual Studioの出力ウィンドウに表示する

Debug.WriteLineを使うには、通常は次の名前空間を指定します。

C#
using System.Diagnostics;

サンプルコードは次のとおりです。

C#
using System.Diagnostics;

int count = 10;

Debug.WriteLine("デバッグ開始");
Debug.WriteLine($"countの値: {count}");
Debug.WriteLine("デバッグ終了");

Visual Studioの出力ウィンドウに、次のような内容が表示されます。

デバッグ開始
countの値: 10
デバッグ終了

Console.WriteLineと違い、Debug.WriteLineはコンソール画面ではなく、開発環境の出力ウィンドウに表示されます。

そのため、コンソールアプリ以外のプロジェクトでも、開発中の確認に使いやすい方法です。

6-2. Trace.WriteLineとの違い

Debug.WriteLineと似たものにTrace.WriteLineがあります。

C#
using System.Diagnostics;

Debug.WriteLine("Debugの出力");
Trace.WriteLine("Traceの出力");

どちらも診断情報を出力するために使われますが、主な違いはビルド構成との関係です。

一般的に、Debug.WriteLineはデバッグ時の確認に使われ、Trace.WriteLineはアプリケーションの動作を追跡するための診断情報として使われます。

初心者のうちは、次のように考えるとわかりやすいです。

メソッド主な用途
Debug.WriteLine開発中のデバッグ確認
Trace.WriteLine動作追跡や診断情報の出力

変数の中身を一時的に確認したいだけなら、Debug.WriteLineで十分です。

C#
Debug.WriteLine($"現在の値: {value}");

アプリケーションの診断ログとして継続的に扱いたい場合は、Traceやログライブラリの利用を検討します。

6-3. Console.WriteLineとDebug.WriteLineの使い分け

Console.WriteLineとDebug.WriteLineは、出力先が異なります。

C#
Console.WriteLine("コンソールに表示");
Debug.WriteLine("出力ウィンドウに表示");

使い分けは次のように考えるとよいです。

やりたいこと使う方法
ユーザーに結果を見せたいConsole.WriteLine
コマンドラインアプリで表示したいConsole.WriteLine
開発中だけ値を確認したいDebug.WriteLine
GUIアプリで内部状態を確認したいDebug.WriteLine

たとえば、コンソールアプリで計算結果をユーザーに見せる場合はConsole.WriteLineを使います。

C#
int result = 10 + 20;
Console.WriteLine($"計算結果: {result}");

一方、画面には表示したくないけれど開発中に確認したい場合はDebug.WriteLineを使います。

C#
Debug.WriteLine($"計算結果: {result}");

6-4. デバッグ出力が表示されないときの確認ポイント

Debug.WriteLineが表示されない場合は、いくつか確認すべきポイントがあります。

まず、Visual Studioの出力ウィンドウが表示されているか確認します。メニューから「表示」→「出力」を開きます。

次に、出力ウィンドウの表示対象が「デバッグ」になっているか確認します。

また、次のusingがあるかも確認します。

C#
using System.Diagnostics;

コードが実際に実行されているかも大切です。

C#
Debug.WriteLine("ここまで来ました");

このようなメッセージを処理の途中に入れて、処理が通っているか確認できます。

条件分岐の中にDebug.WriteLineを書いている場合、その条件がtrueになっていないと出力されません。

C#
int score = 50;

if (score >= 80)
{
Debug.WriteLine("80点以上です");
}

この例ではscoreが50なので、Debug.WriteLineは実行されません。

6-5. リリースビルド時のデバッグ出力の扱い

Debug.WriteLineは、主にデバッグビルドで使うための出力です。リリースビルドでは、Debugに関する出力が無効になることがあります。

開発中の確認だけに使うメッセージであれば、Debug.WriteLineを使うのが適しています。

C#
Debug.WriteLine("開発中だけ確認したい情報");

一方、本番環境でも記録したい情報は、Console.WriteLine、Trace.WriteLine、ファイル出力、ログライブラリなどを検討します。

C#
Trace.WriteLine("診断情報");

本格的なアプリケーションでは、ログレベルを分けて出力することもあります。

ログレベル内容
Debug開発中の詳細情報
Info通常の処理情報
Warning注意が必要な情報
Errorエラー情報

初心者の段階では、開発中の確認にはDebug.WriteLine、画面表示にはConsole.WriteLine、保存が必要ならファイル出力、と覚えておくとよいでしょう。

7. 出力結果が表示されないときの原因と対処法

C#で出力コードを書いたのに、結果が表示されないことがあります。初心者がよく遭遇する原因として、コンソール画面がすぐ閉じる、出力先を間違えている、プロジェクトの種類が違う、コードが実行されていない、などがあります。

たとえば、次のコードを書いても、実行後すぐに画面が閉じてしまうことがあります。

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

この場合、出力されていないのではなく、表示された直後にコンソール画面が閉じている可能性があります。

7-1. コンソール画面がすぐ閉じる場合の対処法

コンソール画面がすぐ閉じる場合は、プログラムの最後に入力待ちを追加します。

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

Console.ReadLineは、ユーザーがEnterキーを押すまで待機します。そのため、画面がすぐに閉じるのを防げます。

次のようにメッセージを表示すると、よりわかりやすくなります。

C#
Console.WriteLine("処理が完了しました");
Console.WriteLine("Enterキーを押すと終了します");
Console.ReadLine();

Visual Studioで実行する場合、実行方法によってはコンソールが自動で閉じないこともあります。ただし、環境によって挙動が異なるため、初心者のうちはConsole.ReadLineで待機させると確認しやすいです。

7-2. Visual Studioの出力ウィンドウに表示されない原因

Debug.WriteLineがVisual Studioの出力ウィンドウに表示されない場合は、次の点を確認します。

まず、出力ウィンドウを開きます。

表示 → 出力

次に、出力元が「デバッグ」になっているか確認します。

また、コードに次のusingが必要な場合があります。

C#
using System.Diagnostics;

さらに、Debug.WriteLineを書いた場所が実行されているかも確認しましょう。

C#
Debug.WriteLine("この行が実行されました");

条件分岐や例外処理の中に書いている場合、その処理に到達していない可能性があります。

C#
if (false)
{
Debug.WriteLine("ここは実行されません");
}

このような場合は、条件を見直す必要があります。

7-3. VS Codeで出力先を間違えやすいポイント

VS CodeでC#を実行している場合、出力先として「ターミナル」「デバッグコンソール」「出力」など複数の画面があります。

Console.WriteLineの結果は、通常ターミナルに表示されます。

C#
Console.WriteLine("ターミナルに表示されます");

一方、Debug.WriteLineはデバッグコンソールや出力パネルに表示される場合があります。環境や拡張機能、実行方法によって出力先が変わることがあります。

VS Codeで出力が見つからないときは、次の点を確認しましょう。

確認項目内容
ターミナルConsole.WriteLineの結果が表示されることが多い
デバッグコンソールデバッグ実行時の情報が表示される
出力パネル拡張機能やビルドの出力が表示される
実行方法dotnet runかデバッグ実行かで変わる

コマンドで実行する場合は、ターミナルで次のように実行します。

Bash
dotnet run

この場合、Console.WriteLineの結果はターミナルに表示されます。

7-4. Console.ReadLineで画面を閉じないようにする方法

Console.ReadLineは、ユーザーが入力してEnterキーを押すまで待機するメソッドです。

画面を閉じないようにするために、プログラムの最後に書くことがあります。

C#
Console.WriteLine("結果を表示しました");
Console.ReadLine();

よりわかりやすくするなら、次のように書きます。

C#
Console.WriteLine("結果を表示しました");
Console.WriteLine("Enterキーを押して終了してください");
Console.ReadLine();

ユーザー入力を受け取る場合にもConsole.ReadLineを使います。

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

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

画面を閉じない目的だけで使う場合は、入力値を変数に入れなくても問題ありません。

C#
Console.ReadLine();

7-5. プロジェクトの種類による出力先の違い

C#には、コンソールアプリ、Windowsフォーム、WPF、ASP.NETなど、さまざまなプロジェクトの種類があります。プロジェクトの種類によって、Console.WriteLineの出力先がわかりにくい場合があります。

コンソールアプリでは、Console.WriteLineの出力はコンソール画面に表示されます。

C#
Console.WriteLine("コンソールアプリの出力");

WindowsフォームやWPFでは、画面アプリケーションが中心なので、Console.WriteLineを使ってもユーザー画面には表示されません。開発中に確認したい場合は、Debug.WriteLineを使うことが多いです。

C#
Debug.WriteLine("WPFやWindowsフォームでの確認用");

Webアプリケーションでは、Console.WriteLineがサーバー側のログや出力に表示される場合がありますが、ブラウザ画面に直接表示されるわけではありません。

プロジェクトごとの目安は次のとおりです。

プロジェクト種類主な出力先
コンソールアプリコンソール画面
Windowsフォーム画面部品、Debug出力
WPF画面部品、Debug出力
ASP.NETログ、レスポンス、Debug出力
クラスライブラリ呼び出し元、ログ、Debug出力

出力されないと感じたときは、「どこに出力しようとしているのか」を確認することが重要です。

8. 実践例で学ぶC#の出力パターン

ここからは、実際によく使うC#の出力パターンをサンプルコードで確認します。

基本的なHello Worldから、ユーザー入力、計算結果、条件分岐、ループ処理、日時付きログまで、初心者が身につけておきたい出力例をまとめて紹介します。

8-1. Hello Worldを出力する

C#で最も基本的な出力例がHello Worldです。

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

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

Hello World

正式なプログラム構造で書くと、次のようになります。

C#
using System;

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

最近のC#では、トップレベルステートメントにより、次のように短く書ける場合もあります。

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

初心者は、まずこのコードを実行して「文字を画面に表示する」という感覚をつかむとよいでしょう。

8-2. ユーザー入力を受け取って出力する

Console.ReadLineを使うと、ユーザーの入力を受け取れます。

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

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

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

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

数値を入力して使いたい場合は、文字列から数値に変換します。

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

int age = int.Parse(input);

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

安全に変換したい場合は、int.TryParseを使います。

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

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

8-3. 計算結果を出力する

計算結果を出力する例です。

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

Console.WriteLine($"足し算: {a + b}");
Console.WriteLine($"引き算: {a - b}");
Console.WriteLine($"掛け算: {a * b}");
Console.WriteLine($"割り算: {a / b}");

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

足し算: 15
引き算: 5
掛け算: 50
割り算: 2

小数の計算結果を出力する場合は、doubleを使います。

C#
double height = 1.7;
double weight = 60.0;
double bmi = weight / (height * height);

Console.WriteLine($"BMIは{bmi:F2}です");

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

BMIは20.76です

F2を使うことで、小数点以下2桁に整えて出力できます。

8-4. 条件分岐の結果を出力する

if文の結果を出力する例です。

C#
int score = 85;

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

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

合格です

複数条件を使うこともできます。

C#
int score = 72;

if (score >= 90)
{
Console.WriteLine("評価: A");
}
else if (score >= 80)
{
Console.WriteLine("評価: B");
}
else if (score >= 70)
{
Console.WriteLine("評価: C");
}
else
{
Console.WriteLine("評価: D");
}

実行結果は次のとおりです。

評価: C

条件分岐の出力は、プログラムの判定結果を確認するうえでよく使います。

8-5. ループ処理の結果を出力する

for文を使って、繰り返し結果を出力する例です。

C#
for (int i = 1; i <= 5; i++)
{
Console.WriteLine($"{i}回目の処理です");
}

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

1回目の処理です
2回目の処理です
3回目の処理です
4回目の処理です
5回目の処理です

配列の中身をループで出力することもできます。

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

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

実行結果は次のとおりです。

りんご
みかん
バナナ

リストでも同じように出力できます。

C#
List<int> scores = new List<int> { 80, 95, 70 };

foreach (int score in scores)
{
Console.WriteLine($"点数: {score}");
}

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

点数: 80
点数: 95
点数: 70

8-6. ログのように日時付きで出力する

処理の記録を残したい場合は、日時付きで出力すると便利です。

C#
Console.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理を開始しました");

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

2026/06/06 14:30:15 処理を開始しました

処理開始と処理終了を出力する例です。

C#
Console.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理開始");

// 何らかの処理
int result = 10 + 20;

Console.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理終了 結果: {result}");

ファイルにログとして追記する場合は、File.AppendAllTextを使います。

C#
string log = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理を実行しました";
File.AppendAllText("app.log", log + Environment.NewLine);

簡単なログ出力用のメソッドを作ることもできます。

C#
static void WriteLog(string message)
{
string log = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss} {message}";
Console.WriteLine(log);
File.AppendAllText("app.log", log + Environment.NewLine);
}

使い方は次のとおりです。

C#
WriteLog("アプリを開始しました");
WriteLog("データを読み込みました");
WriteLog("アプリを終了しました");

9. C#の出力で初心者がつまずきやすいポイント

C#の出力は基本的には簡単ですが、初心者がつまずきやすいポイントもあります。

特に多いのは、大文字・小文字の間違い、セミコロン忘れ、文字列のダブルクォーテーション忘れ、変数の中身が想定と違う、nullや空文字の扱いです。

エラーが出たときは、コードを1行ずつ確認することが大切です。

9-1. 大文字・小文字の違いによるエラー

C#は大文字と小文字を区別します。そのため、次のように書くとエラーになります。

C#
console.writeline("Hello");

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

C#
Console.WriteLine("Hello");

ConsoleのCは大文字、WriteLineのWとLも大文字です。

次のような間違いもよくあります。

C#
Console.Writeline("Hello");

正しくはWriteLineです。

C#
Console.WriteLine("Hello");

C#では、メソッド名やクラス名の大文字・小文字が1文字でも違うと別の名前として扱われます。エラーが出たときは、スペルと大文字・小文字を確認しましょう。

9-2. セミコロン忘れによるエラー

C#では、多くの文の最後にセミコロン;が必要です。

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

C#
Console.WriteLine("Hello")

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

C#
Console.WriteLine("Hello");

変数宣言でもセミコロンが必要です。

C#
int age = 20;
Console.WriteLine(age);

初心者のうちは、エラーが出た行だけでなく、その前の行も確認すると原因を見つけやすいです。セミコロン忘れは、エラーメッセージが次の行を指すこともあります。

9-3. 文字列をダブルクォーテーションで囲み忘れる

文字列を出力するときは、ダブルクォーテーションで囲む必要があります。

正しい例です。

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

間違った例です。

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

この場合、C#はこんにちはを変数名として扱おうとします。変数が定義されていないためエラーになります。

変数を出力する場合は、ダブルクォーテーションで囲みません。

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

この場合は、変数messageの中身である「こんにちは」が出力されます。

文字列そのものを出したい場合はダブルクォーテーションで囲む、変数の中身を出したい場合は変数名を書く、と覚えておきましょう。

9-4. 変数の中身が想定どおりに出力されない

変数を出力したとき、思った値と違うことがあります。

C#
int count = 1;

count = count + 1;

Console.WriteLine(count);

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

2

この場合、countは途中で更新されています。変数の値が想定と違うときは、処理の途中で出力して確認すると原因を見つけやすくなります。

C#
int count = 1;
Console.WriteLine($"初期値: {count}");

count = count + 1;
Console.WriteLine($"加算後: {count}");

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

初期値: 1
加算後: 2

文字列と数値の扱いにも注意が必要です。

C#
string a = "10";
string b = "20";

Console.WriteLine(a + b);

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

1020

文字列同士の+は連結になります。数値として足し算したい場合は、intに変換します。

C#
int x = int.Parse(a);
int y = int.Parse(b);

Console.WriteLine(x + y);

実行結果は次のとおりです。

30

9-5. nullや空文字を出力したときの挙動

C#では、変数にnullが入っている場合があります。

C#
string text = null;

Console.WriteLine(text);

この場合、Console.WriteLineでは何も表示されないように見えます。エラーにはならず、空の行が出力されます。

空文字の場合も見た目ではわかりにくいです。

C#
string text = "";

Console.WriteLine(text);

これも空の行が表示されます。

nullや空文字を確認したい場合は、目印を付けて出力するとわかりやすくなります。

C#
string text = null;

Console.WriteLine($"値: [{text}]");

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

値: []

nullかどうかを明示的に確認することもできます。

C#
string text = null;

if (text == null)
{
Console.WriteLine("textはnullです");
}
else if (text == "")
{
Console.WriteLine("textは空文字です");
}
else
{
Console.WriteLine(text);
}

より簡潔に書くなら、string.IsNullOrEmptyを使います。

C#
string text = "";

if (string.IsNullOrEmpty(text))
{
Console.WriteLine("nullまたは空文字です");
}
else
{
Console.WriteLine(text);
}

10. C#の出力方法に関するよくある質問

ここでは、C#の出力に関して初心者が疑問に感じやすい内容をQ&A形式で解説します。

Console.WriteLineの使い方、改行だけの出力、エラー内容の出力、ログ出力、WindowsフォームやWPFでの扱いなど、実際の開発でよく出てくるポイントを確認しておきましょう。

10-1. C#で改行だけを出力するには?

改行だけを出力したい場合は、Console.WriteLineに何も指定せずに呼び出します。

C#
Console.WriteLine();

例を見てみましょう。

C#
Console.WriteLine("1行目");
Console.WriteLine();
Console.WriteLine("3行目");

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

1行目

3行目

文字列の中に改行を含めることもできます。

C#
Console.WriteLine("1行目\n2行目");

実行結果は次のとおりです。

1行目
2行目

環境に合わせた改行を使いたい場合は、Environment.NewLineを使います。

C#
Console.WriteLine("1行目" + Environment.NewLine + "2行目");

10-2. C#でエラー内容を出力するには?

エラー内容を出力するには、try-catch文を使って例外を受け取り、ex.Messageなどを表示します。

C#
try
{
int x = int.Parse("abc");
}
catch (Exception ex)
{
Console.WriteLine("エラーが発生しました");
Console.WriteLine(ex.Message);
}

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

エラーが発生しました
Input string was not in a correct format.

詳細情報を確認したい場合は、ex.ToString()を出力します。

C#
try
{
int x = int.Parse("abc");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}

開発中であればDebug.WriteLineに出力することもできます。

C#
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}

ユーザーに見せるメッセージはわかりやすく、開発者向けの詳細情報はログやデバッグ出力に分けるとよいでしょう。

10-3. C#でログを出力するには?

簡単なログであれば、Console.WriteLineやFile.AppendAllTextで出力できます。

C#
Console.WriteLine($"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理を開始しました");

ファイルにログを残す場合は、次のように書けます。

C#
string log = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss} 処理を開始しました";
File.AppendAllText("app.log", log + Environment.NewLine);

ログ出力用のメソッドを作ると、繰り返し使いやすくなります。

C#
static void WriteLog(string message)
{
string log = $"{DateTime.Now:yyyy/MM/dd HH:mm:ss} {message}";
File.AppendAllText("app.log", log + Environment.NewLine);
}

使い方は次のとおりです。

C#
WriteLog("アプリを起動しました");
WriteLog("データを保存しました");
WriteLog("アプリを終了しました");

本格的なアプリケーションでは、ログレベルや出力先を管理できるログライブラリを使うこともあります。ただし、初心者の学習段階では、まずConsole.WriteLineとFile.AppendAllTextでログの基本を理解するとよいでしょう。

10-4. WindowsフォームやWPFでConsole.WriteLineは使える?

WindowsフォームやWPFでもConsole.WriteLineを書くこと自体はできます。ただし、コンソール画面が表示されないプロジェクトでは、ユーザー画面に出力されるわけではありません。

WindowsフォームやWPFで開発中に値を確認したい場合は、Debug.WriteLineを使うことが多いです。

C#
using System.Diagnostics;

Debug.WriteLine("ボタンがクリックされました");

画面上に表示したい場合は、ラベルやテキストボックスなどのUI部品に値を設定します。

Windowsフォームの例です。

C#
label1.Text = "こんにちは";

WPFの例です。

C#
textBlock1.Text = "こんにちは";

つまり、GUIアプリでユーザーに見せたい場合は画面部品に表示し、開発中だけ確認したい場合はDebug.WriteLineを使うのが基本です。

10-5. 初心者はどの出力方法から覚えるべき?

初心者が最初に覚えるべき出力方法は、Console.WriteLineです。

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

Console.WriteLineを覚えると、文字列、数値、変数、計算結果、条件分岐、ループ処理などを簡単に確認できます。

次に、改行なしで出力するConsole.Writeを覚えましょう。

C#
Console.Write("名前を入力してください: ");

その次に、ファイル出力を学ぶと実用的です。

C#
File.WriteAllText("output.txt", "ファイルに出力しました");

開発中の確認にはDebug.WriteLineも便利です。

C#
Debug.WriteLine("デバッグ用の出力です");

学習順としては、次の流れがおすすめです。

順番学ぶ内容
1Console.WriteLine
2Console.Write
3文字列補間
4数値や日付のフォーマット
5配列やリストの出力
6File.WriteAllText
7File.AppendAllText
8Debug.WriteLine

まずはConsole.WriteLineで「値を確認する力」を身につけることが大切です。

まとめ

C#で出力する方法には、コンソール出力、ファイル出力、デバッグ出力などがあります。

最も基本的な出力方法はConsole.WriteLineです。

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

Console.WriteLineは出力後に改行され、Console.Writeは改行されません。

C#
Console.WriteLine("改行あり");
Console.Write("改行なし");

文字列と変数を組み合わせて見やすく出力したい場合は、文字列補間を使うと便利です。

C#
string name = "田中";
int age = 25;

Console.WriteLine($"名前は{name}です。年齢は{age}歳です。");

ファイルに出力したい場合は、File.WriteAllTextやFile.AppendAllTextを使います。

C#
File.WriteAllText("sample.txt", "ファイルに出力します");
File.AppendAllText("sample.txt", "追記します" + Environment.NewLine);

複数行や大量のデータを出力する場合は、StreamWriterが便利です。

C#
using (StreamWriter writer = new StreamWriter("data.txt"))
{
writer.WriteLine("1行目");
writer.WriteLine("2行目");
}

開発中に変数の中身や処理の流れを確認したい場合は、Debug.WriteLineを使います。

C#
Debug.WriteLine("デバッグ出力です");

出力結果が表示されない場合は、コンソール画面がすぐ閉じていないか、出力先を間違えていないか、プロジェクトの種類に合った出力方法を使っているかを確認しましょう。

C#の出力は、プログラムの動作を理解するための基本です。まずはConsole.WriteLineで値を表示することに慣れ、次にファイル出力やデバッグ出力を使い分けられるようになると、プログラムの確認やトラブル解決がしやすくなります。