【やさしく完全解説】Addメソッドの作り方と使い方

〜static・デフォルト引数・オーバーロード〜

今回はこのクラスを使います。

/// <summary>
/// 計算ルーチンをまとめたクラス
/// </summary>
class Calc
{
    /// <summary>
    /// 足し算(int版)
    /// </summary>
    public static int Add(int a, int b = 3)
    {
        return a + b;
    }

    /// <summary>
    /// 足し算(double版)
    /// </summary>
    public static double Add(double a, double b)
    {
        return a + b;
    }
}

① まずは「使い方」から見てみましょう

C#では、プログラムは Main メソッドから始まります。

class Program
{
    static void Main()
    {
        Console.WriteLine(Calc.Add(5));
        Console.WriteLine(Calc.Add(5, 2));
        Console.WriteLine(Calc.Add(2.5, 1.5));
    }
}

② 実行結果

8
7
4

なぜこうなるのでしょうか?


③ Calc.Add(5) の意味

Calc.Add(5);

Addはこう定義されていました:

public static int Add(int a, int b = 3)

b = 3 と書いてありましたね。

これは、

bを省略したら 3 を使う

という意味です。

だから内部では:

5 + 3

となり、結果は 8 です。


④ Calc.Add(5, 2)

これは普通の足し算です。

5 + 2

だから 7 になります。


⑤ Calc.Add(2.5, 1.5)

ここが少し大事です。

このメソッドが使われます:

public static double Add(double a, double b)

なぜ?

→ 2.5 は double 型だからです。

C#は、

引数の型を見て、どのメソッドを使うか決める

仕組みになっています。

これを オーバーロード と言います。


⑥ staticとは何か?

呼び出し方を見てください。

Calc.Add(5);

new Calc() をしていませんね。

これは Add が static だからです。

staticは、

クラス名から直接使えるメソッド

という意味です。


⑦ まとめると

このコードには、実は大切な考え方が詰まっています。

✔ クラスとは「機能をまとめる箱」

✔ メソッドとは「処理のまとまり」

✔ staticは「インスタンス不要」

✔ b = 3 は「デフォルト引数」

✔ 同じ名前で型が違うのは「オーバーロード」


⑧ 初学者が混乱しやすいポイント

なぜ同じAddが2つあるの?

→ 型が違えばOK

なぜ 5 だけで動くの?

→ b に 3 が自動で入る


⑨ 練習問題

① Sub(引き算)を追加してください

② Multiply(掛け算)を作ってください

③ int版とdouble版の両方を作ってください


🔹 発展(考える問題)

次はどうなるでしょう?

Console.WriteLine(Calc.Add(5.0, 2));

どのAddが使われるでしょうか?

(ヒント:型変換が関係します)

sh

訪問数 6 回, 今日の訪問数 6回

C#

Posted by hidepon