C#のデリゲートとラムダ式
このレッスンでは、デリゲートFuncとラムダ式を使って、関数を別のメソッドに引数として渡します。
はじめに
デリゲート(delegate)はメソッドを表す型で、振る舞いを値のように渡せます。ラムダ式は、(a, b) => a * bのように、関数をその場で短く書く方法です。この2つを組み合わせると、処理の方法を外から受け取る柔軟なメソッドを書けます。
型Func<int, int, int>は、整数を2つ受け取って整数を返す関数を表します。Applyメソッドは具体的な計算を前もって知らず、operation(left, right)を呼ぶだけです。ラムダ(left, right) => left * rightを渡すと、Applyは掛け算を行って42を返します。
実行できる C# の例
C#
Program.cs
using System;
class Program
{
static int Apply(int left, int right, Func<int, int, int> operation)
=> operation(left, right);
static void Main()
{
int result = Apply(6, 7, (left, right) => left * right);
Console.WriteLine(result);
}
}
42デバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ