C#サンプルコード集|初心者がすぐ使える基本文法・実践例・エラー解決まで解説

はじめに

C#は、Windowsアプリ、Webアプリ、ゲーム、業務システム、API開発など幅広い分野で使われているプログラミング言語です。文法が比較的わかりやすく、開発環境も整っているため、初心者が最初に学ぶ言語としても人気があります。

この記事では、「c# サンプルコード」と検索している初心者向けに、基本文法から実践的な処理、エラー解決、オブジェクト指向まで、すぐに試せるC#サンプルコードをまとめて解説します。

コードはできるだけ短く、コピペして動かしやすい形で紹介します。まずは実行して動きを確認し、少しずつ値や処理を変えながら理解を深めていきましょう。

1. C#サンプルコードを使う前に知っておきたいこと

1-1. C#でできることとサンプルコードを学ぶメリット

C#では、次のような開発ができます。

C#
// C#で作れるものの例
// ・コンソールアプリ
// ・Windowsデスクトップアプリ
// ・Webアプリ
// ・Web API
// ・ゲーム
// ・スマートフォンアプリ
// ・業務システム

サンプルコードを使って学ぶメリットは、実際に動くコードを見ながら文法や処理の流れを理解できることです。説明だけを読むよりも、コードを実行して結果を見るほうが、初心者にはわかりやすいです。

1-2. 初心者が「c# サンプルコード」で検索する主な悩み

初心者がC#のサンプルコードを探すときは、次のような悩みが多いです。

C#
// よくある悩み
// ・C#の書き方がわからない
// ・どこにコードを書けばいいかわからない
// ・コピペしたコードが動かない
// ・エラーの意味がわからない
// ・基本文法をまとめて確認したい
// ・実用的なサンプルを知りたい

この記事では、基本的な書き方だけでなく、エラーが出たときの対処法も紹介します。

1-3. コピペで動かす前に確認すべき実行環境

C#のサンプルコードを動かすには、主に次の環境を使います。

C#
// C#を実行する主な環境
// ・Visual Studio
// ・Visual Studio Code
// ・オンラインコンパイラ
// ・.NET SDK

初心者にはVisual Studioがおすすめです。プロジェクト作成から実行までがわかりやすく、C#開発に必要な機能が最初からそろっています。

1-4. 本記事で学べるC#サンプルコードの範囲

この記事では、次のようなC#サンプルコードを扱います。

C#
// 本記事で扱う内容
// ・Hello World
// ・変数とデータ型
// ・条件分岐
// ・繰り返し処理
// ・配列とList
// ・メソッド
// ・クラス
// ・ファイル操作
// ・CSV処理
// ・LINQ
// ・例外処理
// ・オブジェクト指向

初心者がC#の基礎を理解し、簡単なアプリを作れるようになることを目標にしています。

2. C#サンプルコードを実行する準備

2-1. Visual StudioでC#を実行する手順

Visual StudioでC#を実行する基本手順は次のとおりです。

C#
// 1. Visual Studioを起動
// 2. 「新しいプロジェクトの作成」を選択
// 3. 「コンソール アプリ」を選択
// 4. プロジェクト名を入力
// 5. 作成ボタンを押す
// 6. Program.csにコードを書く
// 7. 実行ボタンを押す

コンソールアプリを作成すると、最初から次のようなコードが用意されている場合があります。

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

このコードを実行すると、画面に「Hello, World!」と表示されます。

2-2. Visual Studio CodeでC#を実行する手順

Visual Studio CodeでC#を実行する場合は、.NET SDKをインストールしてから使います。

Bash
dotnet new console -n SampleApp
cd SampleApp
dotnet run

作成されたProgram.csにC#コードを書きます。

C#
Console.WriteLine("C#をVisual Studio Codeで実行しています");

保存後、ターミナルで次のコマンドを実行します。

Bash
dotnet run

2-3. オンラインコンパイラで手軽に試す方法

インストールせずにC#を試したい場合は、オンラインコンパイラを使う方法もあります。

C#
using System;

class Program
{
static void Main()
{
Console.WriteLine("オンラインでC#を実行しています");
}
}

オンライン環境では、ファイル操作など一部の処理が制限されることがあります。基本文法を試す用途に向いています。

2-4. .NET SDKの確認方法とバージョンの見方

.NET SDKが入っているか確認するには、ターミナルやコマンドプロンプトで次のコマンドを実行します。

Bash
dotnet --version

バージョン一覧を確認したい場合は、次のコマンドを使います。

Bash
dotnet --list-sdks

バージョン番号が表示されれば、C#を実行する準備ができています。

2-5. サンプルコードが動かないときの基本チェック

C#サンプルコードが動かないときは、次の点を確認しましょう。

C#
// 確認ポイント
// ・セミコロン ; が抜けていないか
// ・大文字と小文字を間違えていないか
// ・波かっこ { } の数が合っているか
// ・必要な using が書かれているか
// ・プロジェクトの種類が正しいか
// ・.NET SDKがインストールされているか

C#は大文字と小文字を区別します。Consoleconsoleと書くとエラーになります。

3. 初心者向けC#基本文法のサンプルコード

3-1. Hello Worldを表示するサンプルコード

最も基本的なC#サンプルコードです。

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

古い形式では、次のように書くこともあります。

C#
using System;

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

Console.WriteLineは、文字列を画面に表示して改行する命令です。

3-2. 変数とデータ型のサンプルコード

変数は、値を入れておく箱のようなものです。

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

Console.WriteLine(age);
Console.WriteLine(height);
Console.WriteLine(name);
Console.WriteLine(isStudent);

主なデータ型は次のとおりです。

C#
int number = 10;          // 整数
double price = 99.9; // 小数
string text = "こんにちは"; // 文字列
bool flag = false; // trueまたはfalse
char letter = 'A'; // 1文字

3-3. 文字列操作のサンプルコード

文字列は、連結したり、一部を取り出したりできます。

C#
string firstName = "山田";
string lastName = "太郎";

string fullName = firstName + lastName;

Console.WriteLine(fullName);

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

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

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

文字列の長さを取得する例です。

C#
string message = "C#サンプルコード";

Console.WriteLine(message.Length);

3-4. 四則演算と計算処理のサンプルコード

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 number = 10;

Console.WriteLine(number % 2);

結果が0なら偶数、1なら奇数です。

3-5. if文による条件分岐のサンプルコード

if文を使うと、条件によって処理を分けられます。

C#
int score = 80;

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

複数条件を判定する例です。

C#
int score = 85;

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

3-6. switch文による分岐処理のサンプルコード

switch文は、値によって処理を分けたいときに便利です。

C#
int day = 3;

switch (day)
{
case 1:
Console.WriteLine("月曜日");
break;
case 2:
Console.WriteLine("火曜日");
break;
case 3:
Console.WriteLine("水曜日");
break;
default:
Console.WriteLine("その他の曜日");
break;
}

文字列でもswitch文を使えます。

C#
string color = "red";

switch (color)
{
case "red":
Console.WriteLine("赤です");
break;
case "blue":
Console.WriteLine("青です");
break;
default:
Console.WriteLine("不明な色です");
break;
}

3-7. for文・while文による繰り返し処理のサンプルコード

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

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

while文は、条件を満たす間だけ繰り返します。

C#
int count = 1;

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

無限ループにならないように、条件がいつかfalseになるように書きましょう。

3-8. 配列とListのサンプルコード

配列は、同じ型の値をまとめて管理できます。

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

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

Listは、後から要素を追加しやすいコレクションです。

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

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

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

Listを使う場合、古い形式では次のusingが必要です。

C#
using System.Collections.Generic;

3-9. メソッドの作り方と呼び出し方のサンプルコード

メソッドは、処理をひとまとめにする仕組みです。

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

SayHello();

引数を受け取るメソッドの例です。

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

Greet("田中");

戻り値があるメソッドの例です。

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

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

3-10. クラスとインスタンスの基本サンプルコード

クラスは、データと処理をまとめる設計図です。

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

public void SayHello()
{
Console.WriteLine($"{Name}です。こんにちは");
}
}

Person person = new Person();
person.Name = "山田";
person.SayHello();

new Person()でインスタンスを作成し、プロパティやメソッドを使います。

4. すぐ使えるC#実践サンプルコード集

4-1. コンソール入力を受け取るサンプルコード

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

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

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

Console.ReadLine()の戻り値は文字列です。

4-2. 入力値を数値に変換するサンプルコード

入力された文字列を数値に変換するには、int.Parseを使います。

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

int age = int.Parse(input);

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

ただし、数字以外を入力するとエラーになります。

4-3. TryParseでエラーを防ぐサンプルコード

安全に数値へ変換するには、TryParseを使います。

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

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

初心者は、int.Parseよりもint.TryParseを使うとエラーを防ぎやすくなります。

4-4. 日付と時刻を扱うサンプルコード

現在の日付と時刻を取得するには、DateTime.Nowを使います。

C#
DateTime now = DateTime.Now;

Console.WriteLine(now);
Console.WriteLine(now.Year);
Console.WriteLine(now.Month);
Console.WriteLine(now.Day);

日付を指定して作成することもできます。

C#
DateTime birthday = new DateTime(2000, 1, 1);

Console.WriteLine(birthday.ToString("yyyy年MM月dd日"));

4-5. ランダムな数値を生成するサンプルコード

ランダムな数値を作るには、Randomクラスを使います。

C#
Random random = new Random();

int number = random.Next(1, 101);

Console.WriteLine(number);

random.Next(1, 101)は、1以上101未満の整数を返します。つまり、1から100までの数値が生成されます。

4-6. ファイルを読み込むサンプルコード

テキストファイルを読み込むには、File.ReadAllTextを使います。

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

Console.WriteLine(text);

古い形式では、次のusingが必要です。

C#
using System.IO;

ファイルが存在しないとエラーになるため、存在チェックをすると安全です。

C#
string path = "sample.txt";

if (File.Exists(path))
{
string text = File.ReadAllText(path);
Console.WriteLine(text);
}
else
{
Console.WriteLine("ファイルが見つかりません");
}

4-7. ファイルに書き込むサンプルコード

ファイルに文字を書き込むには、File.WriteAllTextを使います。

C#
File.WriteAllText("output.txt", "C#でファイルに書き込みました");

Console.WriteLine("書き込み完了");

追記したい場合は、File.AppendAllTextを使います。

C#
File.AppendAllText("output.txt", "追記しました\n");

Console.WriteLine("追記完了");

4-8. CSVを読み書きするサンプルコード

CSVファイルを書き込むサンプルコードです。

C#
string[] lines =
{
"名前,年齢",
"田中,25",
"佐藤,30"
};

File.WriteAllLines("data.csv", lines);

Console.WriteLine("CSVを書き込みました");

CSVを読み込む例です。

C#
string[] lines = File.ReadAllLines("data.csv");

foreach (string line in lines)
{
string[] columns = line.Split(',');
Console.WriteLine(string.Join(" / ", columns));
}

カンマを含む文字列や引用符を扱う場合は、専用ライブラリを使うと安全です。

4-9. LINQでデータを抽出・並び替えるサンプルコード

LINQを使うと、Listや配列から条件に合うデータを簡単に取り出せます。

C#
List<int> numbers = new List<int> { 5, 1, 8, 3, 10 };

var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (int number in evenNumbers)
{
Console.WriteLine(number);
}

並び替えの例です。

C#
List<int> numbers = new List<int> { 5, 1, 8, 3, 10 };

var sortedNumbers = numbers.OrderBy(n => n);

foreach (int number in sortedNumbers)
{
Console.WriteLine(number);
}

古い形式では、次のusingが必要です。

C#
using System.Linq;

4-10. 例外処理で安全に実行するサンプルコード

例外処理を使うと、エラーが発生してもプログラムが突然止まるのを防げます。

C#
try
{
int number = int.Parse("abc");
Console.WriteLine(number);
}
catch (FormatException)
{
Console.WriteLine("数値に変換できません");
}
finally
{
Console.WriteLine("処理を終了します");
}

tryにはエラーが起こる可能性のある処理を書き、catchにはエラー時の処理を書きます。

5. 用途別C#サンプルコード

5-1. 計算機を作るサンプルコード

簡単な足し算計算機のサンプルです。

C#
Console.Write("1つ目の数値: ");
int a = int.Parse(Console.ReadLine());

Console.Write("2つ目の数値: ");
int b = int.Parse(Console.ReadLine());

int result = a + b;

Console.WriteLine($"結果: {result}");

安全にするなら、TryParseを使いましょう。

C#
Console.Write("1つ目の数値: ");
bool ok1 = int.TryParse(Console.ReadLine(), out int a);

Console.Write("2つ目の数値: ");
bool ok2 = int.TryParse(Console.ReadLine(), out int b);

if (ok1 && ok2)
{
Console.WriteLine($"結果: {a + b}");
}
else
{
Console.WriteLine("正しい数値を入力してください");
}

5-2. 偶数・奇数を判定するサンプルコード

数値が偶数か奇数かを判定するサンプルです。

C#
int number = 7;

if (number % 2 == 0)
{
Console.WriteLine("偶数です");
}
else
{
Console.WriteLine("奇数です");
}

ユーザー入力に対応した例です。

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

if (int.TryParse(Console.ReadLine(), out int number))
{
Console.WriteLine(number % 2 == 0 ? "偶数です" : "奇数です");
}
else
{
Console.WriteLine("数値を入力してください");
}

5-3. 最大値・最小値を求めるサンプルコード

Listから最大値と最小値を求めるサンプルです。

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

int max = scores.Max();
int min = scores.Min();

Console.WriteLine($"最大値: {max}");
Console.WriteLine($"最小値: {min}");

LINQを使わずに求める例です。

C#
int[] numbers = { 80, 95, 60, 70, 100 };

int max = numbers[0];
int min = numbers[0];

foreach (int number in numbers)
{
if (number > max)
{
max = number;
}

if (number < min)
{
min = number;
}
}

Console.WriteLine($"最大値: {max}");
Console.WriteLine($"最小値: {min}");

5-4. 文字列を検索・置換するサンプルコード

文字列に特定の言葉が含まれているか確認するには、Containsを使います。

C#
string text = "C#のサンプルコードを学習しています";

if (text.Contains("サンプル"))
{
Console.WriteLine("サンプルという文字が含まれています");
}

文字列を置換するには、Replaceを使います。

C#
string text = "私はJavaを勉強しています";

string replaced = text.Replace("Java", "C#");

Console.WriteLine(replaced);

5-5. リストから条件に合うデータを探すサンプルコード

Listから条件に合うデータを探す例です。

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

string result = names.FirstOrDefault(name => name.StartsWith("佐"));

if (result != null)
{
Console.WriteLine($"見つかりました: {result}");
}
else
{
Console.WriteLine("見つかりませんでした");
}

複数件を抽出する例です。

C#
List<int> numbers = new List<int> { 10, 25, 30, 45, 50 };

var results = numbers.Where(n => n >= 30);

foreach (int number in results)
{
Console.WriteLine(number);
}

5-6. 簡単なログイン判定のサンプルコード

ユーザー名とパスワードを判定するサンプルです。

C#
string correctUser = "admin";
string correctPassword = "1234";

Console.Write("ユーザー名: ");
string user = Console.ReadLine();

Console.Write("パスワード: ");
string password = Console.ReadLine();

if (user == correctUser && password == correctPassword)
{
Console.WriteLine("ログイン成功");
}
else
{
Console.WriteLine("ログイン失敗");
}

実際のシステムでは、パスワードをそのまま保存するのは危険です。学習用の簡単な例として使いましょう。

5-7. ToDoリストを作るサンプルコード

簡単なToDoリストのサンプルです。

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

while (true)
{
Console.Write("ToDoを入力してください。終了するにはexit: ");
string input = Console.ReadLine();

if (input == "exit")
{
break;
}

todos.Add(input);
}

Console.WriteLine("ToDo一覧:");

foreach (string todo in todos)
{
Console.WriteLine($"- {todo}");
}

入力を繰り返し受け取り、最後に一覧表示します。

5-8. 簡単なじゃんけんゲームのサンプルコード

C#で作る簡単なじゃんけんゲームです。

C#
string[] hands = { "グー", "チョキ", "パー" };
Random random = new Random();

Console.Write("手を入力してください(グー・チョキ・パー): ");
string player = Console.ReadLine();

string computer = hands[random.Next(0, 3)];

Console.WriteLine($"コンピューター: {computer}");

if (player == computer)
{
Console.WriteLine("あいこです");
}
else if (
(player == "グー" && computer == "チョキ") ||
(player == "チョキ" && computer == "パー") ||
(player == "パー" && computer == "グー"))
{
Console.WriteLine("あなたの勝ちです");
}
else
{
Console.WriteLine("あなたの負けです");
}

条件分岐、配列、ランダム処理を組み合わせた初心者向けの実践サンプルです。

6. オブジェクト指向を理解するC#サンプルコード

6-1. クラス・プロパティ・メソッドの基本

クラスは、関連するデータと処理をまとめる仕組みです。

C#
class Product
{
public string Name { get; set; }
public int Price { get; set; }

public void ShowInfo()
{
Console.WriteLine($"{Name}: {Price}円");
}
}

Product product = new Product();
product.Name = "ペン";
product.Price = 120;
product.ShowInfo();

NamePriceがプロパティ、ShowInfoがメソッドです。

6-2. コンストラクタのサンプルコード

コンストラクタは、インスタンスを作るときに自動で呼ばれる特別なメソッドです。

C#
class User
{
public string Name { get; set; }

public User(string name)
{
Name = name;
}

public void SayHello()
{
Console.WriteLine($"{Name}さん、こんにちは");
}
}

User user = new User("田中");
user.SayHello();

初期値を必ず設定したいときに便利です。

6-3. カプセル化のサンプルコード

カプセル化は、データを外部から直接変更できないようにし、安全に扱う考え方です。

C#
class BankAccount
{
private int balance;

public void Deposit(int amount)
{
if (amount > 0)
{
balance += amount;
}
}

public int GetBalance()
{
return balance;
}
}

BankAccount account = new BankAccount();
account.Deposit(1000);

Console.WriteLine(account.GetBalance());

balanceprivateにすることで、クラスの外から直接変更できないようにしています。

6-4. 継承のサンプルコード

継承を使うと、既存のクラスの機能を引き継いだ新しいクラスを作れます。

C#
class Animal
{
public void Eat()
{
Console.WriteLine("食べます");
}
}

class Dog : Animal
{
public void Bark()
{
Console.WriteLine("ワンワン");
}
}

Dog dog = new Dog();
dog.Eat();
dog.Bark();

DogクラスはAnimalクラスを継承しているため、Eatメソッドを使えます。

6-5. インターフェースのサンプルコード

インターフェースは、クラスが実装すべき機能のルールを定義します。

C#
interface IPrintable
{
void Print();
}

class Report : IPrintable
{
public void Print()
{
Console.WriteLine("レポートを印刷します");
}
}

IPrintable printable = new Report();
printable.Print();

複数のクラスに共通の操作を持たせたいときに便利です。

6-6. ポリモーフィズムのサンプルコード

ポリモーフィズムは、同じ呼び出し方で異なる処理を実行できる仕組みです。

C#
class Animal
{
public virtual void Speak()
{
Console.WriteLine("動物が鳴きます");
}
}

class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("ワンワン");
}
}

class Cat : Animal
{
public override void Speak()
{
Console.WriteLine("ニャー");
}
}

List<Animal> animals = new List<Animal>
{
new Dog(),
new Cat()
};

foreach (Animal animal in animals)
{
animal.Speak();
}

同じSpeakメソッドでも、実際のインスタンスによって動きが変わります。

6-7. staticの使い方がわかるサンプルコード

staticは、インスタンスを作らずに使えるメンバーを定義するときに使います。

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

int result = MathHelper.Add(3, 5);

Console.WriteLine(result);

共通処理や便利関数をまとめるときに使われます。

7. C#サンプルコードでよくあるエラーと解決方法

7-1. 「型を変換できません」エラーの原因と対処法

型が違う値を代入しようとするとエラーになります。

C#
int number = "123"; // エラー

文字列を数値に変換する必要があります。

C#
string text = "123";
int number = int.Parse(text);

Console.WriteLine(number);

安全に変換するなら、TryParseを使います。

C#
string text = "123";

if (int.TryParse(text, out int number))
{
Console.WriteLine(number);
}

7-2. 「名前が現在のコンテキストに存在しません」エラーの原因と対処法

変数名を間違えたり、変数の有効範囲外で使ったりすると発生します。

C#
if (true)
{
int number = 10;
}

Console.WriteLine(number); // エラー

変数を使いたい場所より外側で宣言しましょう。

C#
int number = 0;

if (true)
{
number = 10;
}

Console.WriteLine(number);

7-3. NullReferenceExceptionの原因と対処法

nullの変数に対してメソッドやプロパティを使うと発生します。

C#
string text = null;

Console.WriteLine(text.Length); // エラー

nullチェックを行いましょう。

C#
string text = null;

if (text != null)
{
Console.WriteLine(text.Length);
}
else
{
Console.WriteLine("textはnullです");
}

または、null条件演算子を使えます。

C#
string text = null;

Console.WriteLine(text?.Length);

7-4. FormatExceptionの原因と対処法

数値に変換できない文字列をint.Parseすると発生します。

C#
int number = int.Parse("abc"); // エラー

TryParseを使うと安全です。

C#
string input = "abc";

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

7-5. IndexOutOfRangeExceptionの原因と対処法

配列の範囲外にアクセスすると発生します。

C#
int[] numbers = { 10, 20, 30 };

Console.WriteLine(numbers[3]); // エラー

配列のインデックスは0から始まります。

C#
int[] numbers = { 10, 20, 30 };

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

7-6. ファイルが見つからないエラーの原因と対処法

存在しないファイルを読み込もうとするとエラーになります。

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

ファイルの存在を確認しましょう。

C#
string path = "sample.txt";

if (File.Exists(path))
{
string text = File.ReadAllText(path);
Console.WriteLine(text);
}
else
{
Console.WriteLine("ファイルが存在しません");
}

ファイル名、拡張子、保存場所も確認してください。

7-7. サンプルコードをコピペしたのに動かないときの確認ポイント

C#サンプルコードをコピペして動かない場合は、次を確認しましょう。

C#
// 確認ポイント
// ・必要なusingがあるか
// ・クラス名が重複していないか
// ・Mainメソッドの中に書くべきコードを外に書いていないか
// ・プロジェクトの種類がコンソールアプリか
// ・C#のバージョンに合っているか
// ・全角記号が混ざっていないか

特に、初心者は全角のセミコロンや全角のダブルクォーテーションに注意しましょう。

C#
Console.WriteLine("正しい書き方");

8. C#サンプルコードを理解して応用するコツ

8-1. コピペだけで終わらせない読み方

サンプルコードは、ただコピーして実行するだけではなく、1行ずつ意味を確認することが大切です。

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

Console.WriteLine(total);

このコードなら、次のように読みます。

C#
// priceに100を入れる
// countに3を入れる
// priceとcountを掛けた結果をtotalに入れる
// totalを画面に表示する

処理の流れを日本語で説明できるようになると、理解が深まります。

8-2. 変数名や値を変えて動きを確認する方法

サンプルコードを理解するには、値を変えて実行してみるのが効果的です。

C#
int score = 80;

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

scoreを50や100に変えて、結果がどう変わるか確認しましょう。

C#
int score = 50;

小さな変更を繰り返すことで、条件式や変数の意味がわかりやすくなります。

8-3. コメントを付けながら理解する方法

コメントを書くと、コードの意味を整理できます。

C#
// 商品価格
int price = 500;

// 個数
int quantity = 2;

// 合計金額を計算
int total = price * quantity;

// 結果を表示
Console.WriteLine($"合計: {total}円");

初心者のうちは、書きすぎなくらいコメントを付けても問題ありません。慣れてきたら、必要な部分だけに絞りましょう。

8-4. 小さなサンプルを組み合わせてアプリ化する考え方

C#のアプリは、小さな処理の組み合わせで作れます。

C#
// 入力
Console.Write("価格を入力してください: ");
int price = int.Parse(Console.ReadLine());

// 計算
int taxIncluded = (int)(price * 1.1);

// 出力
Console.WriteLine($"税込価格: {taxIncluded}円");

このように、入力、計算、出力を分けて考えると、簡単なアプリを作りやすくなります。

8-5. 初心者が次に学ぶべきC#の学習ステップ

基本文法を学んだら、次は次の内容に進むとよいでしょう。

C#
// 次に学ぶとよい内容
// ・オブジェクト指向
// ・LINQ
// ・例外処理
// ・ファイル操作
// ・データベース接続
// ・ASP.NET Core
// ・Unity
// ・テストコード

まずはコンソールアプリで基礎を固め、その後にWebアプリやゲーム開発など目的に合わせて学習を進めましょう。

9. C#サンプルコードに関するよくある質問

9-1. C#のサンプルコードはどこに書けばいい?

初心者の場合は、コンソールアプリのProgram.csに書くのが基本です。

C#
Console.WriteLine("ここにC#のコードを書きます");

古い形式のプロジェクトでは、Mainメソッドの中に書きます。

C#
using System;

class Program
{
static void Main()
{
Console.WriteLine("Mainメソッドの中に書きます");
}
}

9-2. C#と.NETの違いは?

C#はプログラミング言語です。一方、.NETはC#で作ったプログラムを動かすための開発基盤です。

C#
// C#  : 言語
// .NET: 実行環境やライブラリを含む開発基盤

C#で書いたコードは、.NET上で実行されます。

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

C#は初心者にも学びやすい言語です。文法が整理されており、開発環境も充実しています。

C#
Console.WriteLine("C#は初心者にもおすすめです");

ただし、オブジェクト指向や非同期処理など、最初は難しく感じる部分もあります。まずは基本文法と小さなサンプルコードから始めましょう。

9-4. Visual StudioとVisual Studio Codeはどちらを使うべき?

初心者にはVisual Studioがおすすめです。C#開発に必要な機能がそろっており、画面操作でプロジェクトを作りやすいからです。

C#
// 初心者: Visual Studioがおすすめ
// 軽量な環境がよい人: Visual Studio Codeも選択肢

Visual Studio Codeは軽くて便利ですが、拡張機能や.NET SDKの設定が必要になるため、最初は少し難しく感じることがあります。

9-5. 古いC#サンプルコードが動かない理由は?

古いC#サンプルコードが動かない理由には、次のようなものがあります。

C#
// よくある理由
// ・C#や.NETのバージョンが違う
// ・必要なusingが不足している
// ・古いライブラリを使っている
// ・プロジェクト形式が違う
// ・Mainメソッドの書き方が違う

最近のC#では、次のように短く書けるトップレベルステートメントが使われます。

C#
Console.WriteLine("新しい形式の書き方");

一方、古いサンプルでは次のような形式が多いです。

C#
using System;

class Program
{
static void Main()
{
Console.WriteLine("古い形式でも使われる書き方");
}
}

どちらもC#のコードですが、プロジェクトやバージョンによって見た目が変わります。

9-6. C#でWebアプリやゲーム開発もできる?

C#では、Webアプリやゲーム開発もできます。

C#
// Webアプリ開発: ASP.NET Core
// ゲーム開発: Unity
// デスクトップアプリ: WPF、Windows Forms
// API開発: ASP.NET Core Web API

最初はコンソールアプリで基本文法を学び、その後に目的に合わせてASP.NET CoreやUnityを学ぶとスムーズです。

まとめ

C#のサンプルコードを使うと、基本文法や実践的な処理を効率よく学べます。まずはHello World、変数、条件分岐、繰り返し、配列、List、メソッド、クラスといった基本を押さえましょう。

そのうえで、コンソール入力、数値変換、ファイル操作、CSV処理、LINQ、例外処理などを学ぶと、実用的なプログラムを作れるようになります。

C#サンプルコードを学ぶときは、コピペして終わりにせず、変数名や値を変えて動きを確認することが大切です。エラーが出た場合も、メッセージをよく読み、型変換、変数名、null、配列の範囲、ファイルパスなどを順番に確認しましょう。

小さなサンプルコードを理解して組み合わせていけば、計算機、ToDoリスト、ログイン判定、ゲーム、Webアプリなどへ応用できます。C#の基礎を身につける第一歩として、この記事のサンプルコードを実際に動かしながら学習を進めてください。