Day 15 のゴールと全体イメージ
Day 15 では、C# におけるとても重要な概念である メソッド を学びます。 メソッドは、簡単に言うと「処理のかたまりに名前をつけたもの」です。
学ぶことは次のとおりです。
- メソッドとは
- メソッド定義
- メソッドの呼び出し
voidメソッド- 処理の再利用
これらをステップバイステップでかみ砕きながら、 「同じ処理を何度も書かずに、きれいにまとめて使い回す」感覚を身につけていきます。
メソッドとは何か
「処理に名前をつけて、何度でも呼び出せるようにしたもの」
メソッドは、
「ある目的を持った処理のまとまりに、名前をつけておいたもの」
です。
例えば、
- 「挨拶を表示する処理」
- 「合計を計算する処理」
- 「メニューを表示する処理」
などを、それぞれメソッドとして定義しておくと、 必要なときにその名前を呼ぶだけで、同じ処理を何度でも実行できます。
メソッド定義の基本形
いちばんシンプルな形:void メソッド
まずは、戻り値を持たないシンプルなメソッドから見ていきます。
基本形は次のようになります。
戻り値の型 メソッド名()
{
// 実行したい処理
}
C#戻り値がない場合は、戻り値の型として void を使います。
void SayHello()
{
Console.WriteLine("こんにちは、メソッドの世界へようこそ!");
}
C#この SayHello が「挨拶を表示する処理のかたまり」です。
メソッドを定義して呼び出す流れ
例1:挨拶メソッドを作って呼び出す
メソッドは、クラスの中に定義して使います。 まずは、Main メソッドの外側に、SayHello メソッドを定義してみます。
using System;
class Program
{
// 挨拶を表示するメソッド
static void SayHello()
{
// この中が「メソッドの処理」です
Console.WriteLine("こんにちは、メソッド入門 Day 15 です!");
}
static void Main(string[] args)
{
// ここからプログラムが実行されます
// SayHello メソッドを呼び出します
SayHello(); // メソッド名 + () で呼び出します
Console.ReadLine();
}
}
C#ここで押さえておきたいポイント
- メソッドは「クラスの中」に定義します(ここでは
Programクラス)。 Mainメソッドの外側に、static void SayHello()を定義しています。- 呼び出すときは、メソッド名 + 丸括弧
()で呼び出します。 SayHello();と書いた場所で、メソッドの中身の処理が実行されます。
なぜメソッドを使うのか:処理の再利用
同じ処理を何度も書かないための仕組み
メソッドを使う最大の理由は、
「同じ処理を何度も書かずに、まとめて再利用できるようにするため」
です。
例えば、挨拶を 3 回表示したいとします。 メソッドを使わない場合は、次のように書くことになります。
Console.WriteLine("こんにちは!");
Console.WriteLine("こんにちは!");
Console.WriteLine("こんにちは!");
C#一方、メソッドを使うと、次のように書けます。
SayHello();
SayHello();
SayHello();
C#メソッドの中身を変えたいときは、SayHello の定義だけを直せば、 呼び出し側はそのままで、すべての挨拶が新しい内容になります。
例2:メニュー表示をメソッドにする
「まとまりのある処理」をひとつのメソッドに
メニューを表示する処理は、よく何度も使われます。 これをメソッドにしておくと、とても見通しがよくなります。
using System;
class Program
{
// メニューを表示するメソッド
static void ShowMenu()
{
Console.WriteLine("=== メニュー ===");
Console.WriteLine("1: 挨拶");
Console.WriteLine("2: 今日の日付を表示");
Console.WriteLine("0: 終了");
Console.WriteLine("番号を入力してください:");
}
static void Main(string[] args)
{
int menu;
do
{
// 毎回メニューを表示したいので、メソッドを呼び出します
ShowMenu();
string input = Console.ReadLine();
menu = int.Parse(input);
if (menu == 1)
{
Console.WriteLine("こんにちは!");
}
else if (menu == 2)
{
Console.WriteLine($"今日の日付:{DateTime.Now.ToShortDateString()}");
}
else if (menu == 0)
{
Console.WriteLine("終了します。");
}
else
{
Console.WriteLine("不正な番号です。0〜2 を入力してください。");
}
Console.WriteLine();
} while (menu != 0);
Console.ReadLine();
}
}
C#ここでのポイント
- メニュー表示という「ひとまとまりの処理」を
ShowMenuメソッドにしています。 Mainの中では、「メニューを表示したい」ときにShowMenu();と書くだけです。- メニューの内容を変えたいときは、
ShowMenuの中身だけを修正すれば済みます。
void メソッドとは
「値を返さず、処理だけ行うメソッド」
void は、「何も返さない」という意味の型です。
voidメソッド = 「処理はするが、呼び出し元に値は返さないメソッド」
というイメージです。
例えば、
- 画面にメッセージを表示する
- ログを出力する
- ファイルに書き込む
など、「何かをするけれど、結果として値を返す必要はない」処理は、 void メソッドとして定義することが多いです。
static void PrintLine()
{
Console.WriteLine("--------------------");
}
C#呼び出し側では、次のように使います。
PrintLine(); // 区切り線を表示するだけで、値は返ってきません
C#メソッドの命名と役割
「名前から何をするか分かる」ようにする
メソッド名はとても重要です。
SayHello→ 挨拶をするShowMenu→ メニューを表示するPrintLine→ 線を表示する
というように、「何をするメソッドなのか」が名前から分かるようにすると、 コードを読む人(未来の自分も含めて)が理解しやすくなります。
また、1 つのメソッドは「1 つの役割」に絞るのが基本です。
- 挨拶とメニュー表示と計算を全部まとめて 1 メソッドにしてしまうと、 何をしているのか分かりにくくなります。
- 「挨拶するメソッド」「メニューを表示するメソッド」「計算するメソッド」と分けることで、 再利用もしやすくなります。
練習テンプレート:自分のメソッドを作ってみる
例:区切り線と挨拶をメソッドにする
using System;
class Program
{
// 区切り線を表示するメソッド
static void PrintSeparator()
{
Console.WriteLine("================================");
}
// 挨拶を表示するメソッド
static void Greet()
{
Console.WriteLine("こんにちは!メソッドの練習中です。");
}
static void Main(string[] args)
{
PrintSeparator(); // 区切り線を表示
Greet(); // 挨拶を表示
PrintSeparator(); // もう一度区切り線を表示
Console.ReadLine();
}
}
C#このように、
- 「よく使う表示」をメソッドにしておく
- 必要な場所で何度でも呼び出す
という練習をすると、「処理をまとめて再利用する」感覚が自然に身についていきます。
Day 15 のまとめ
Day 15 では、
- メソッドとは何か
- メソッド定義の基本形(
static void メソッド名()) - メソッドの呼び出し(メソッド名 +
()) voidメソッド(値を返さず、処理だけ行うメソッド)- 処理の再利用(同じ処理を何度も書かずに、メソッドとしてまとめる)
を学びました。
メソッドは、プログラムを「意味のある部品」に分けていくための、とても重要な仕組みです。 これから先、
- 引数を受け取るメソッド
- 値を返すメソッド
- 複数のメソッドを組み合わせた設計
など、さらに一歩進んだ使い方を学んでいくことになります。
まずは Day 15 の段階で、
- 自分で
voidメソッドを定義してみる - メソッド名から「何をするか」が分かるように意識して名前をつける
- 同じ処理を見つけたら「これはメソッドにできないかな?」と考えてみる
といった練習を通して、「処理を部品化して再利用する」というプログラミングの基本的な考え方を、 少しずつ体に馴染ませていってください。
