C# メソッドチェーン作成チュートリアル

🔹 メソッドチェーンって何?

メソッドチェーン(Method Chaining)は、「.(ドット)」を使ってメソッドを続けて呼び出す書き方 です。

例えば、ふつうの方法だと、こう書きます:

Car myCar = new Car();
myCar.SetColor("Red");
myCar.SetSpeed(100);
myCar.ShowInfo();

メソッドチェーンを使うと?

new Car().SetColor("Red").SetSpeed(100).ShowInfo();

1行でスッキリ書ける!


🔹 ステップ 1:普通のメソッド

まずは、メソッドチェーンを使わないクラスを作ります。

public class Car
{
    private string color;
    private int speed;

    public void SetColor(string newColor)
    {
        color = newColor;
    }

    public void SetSpeed(int newSpeed)
    {
        speed = newSpeed;
    }

    public void ShowInfo()
    {
        Console.WriteLine($"車の色: {color}, 速度: {speed} km/h");
    }
}

class Program
{
    static void Main()
    {
        Car myCar = new Car();
        myCar.SetColor("青");
        myCar.SetSpeed(120);
        myCar.ShowInfo();
    }
}

問題点

  • SetColor()SetSpeed() をバラバラに呼び出すのでコードが長い
  • まとめて書けたらスッキリするのに…

🔹 ステップ 2:メソッドチェーンを作る

メソッドチェーンを作るには、メソッドの最後に return this; を追加 します。

public class Car
{
    private string color;
    private int speed;

    public Car SetColor(string newColor)  // 戻り値を Car にする
    {
        color = newColor;
        return this;  // 自分自身を返す
    }

    public Car SetSpeed(int newSpeed)  // 戻り値を Car にする
    {
        speed = newSpeed;
        return this;  // 自分自身を返す
    }

    public void ShowInfo()
    {
        Console.WriteLine($"車の色: {color}, 速度: {speed} km/h");
    }
}

class Program
{
    static void Main()
    {
        new Car()
            .SetColor("赤")  // ここで色を設定
            .SetSpeed(150)   // ここで速度を設定
            .ShowInfo();     // 最後に表示
    }
}

✅ メソッドチェーンのポイント

  1. 戻り値を Car にする
  2. return this; で自分自身を返す
  3. 「.(ドット)」でつなげて書けるようになる

🔹 ステップ 3:もう少し便利に!

さらに WithColor()WithSpeed() のように、わかりやすい名前 にすると、読みやすくなります。

public class Car
{
    private string color;
    private int speed;

    public Car WithColor(string newColor)
    {
        color = newColor;
        return this;
    }

    public Car WithSpeed(int newSpeed)
    {
        speed = newSpeed;
        return this;
    }

    public void Show()
    {
        Console.WriteLine($"🚗 車の色: {color}, 速度: {speed} km/h");
    }
}

class Program
{
    static void Main()
    {
        new Car()
            .WithColor("白")
            .WithSpeed(200)
            .Show();
    }
}

「〇〇を設定する」という感じでわかりやすく!


🔹 まとめ

メソッドチェーンを使うと?

  • 1行でスッキリ書ける!
  • オブジェクトの設定を簡単にできる!
  • コードが見やすくなる!

実際のプログラムでも使われている書き方なので、ぜひ試してみてください!🚀

C#

Posted by hidepon