One Minute Notes: C#のデリゲートについて
私のブログに新しいセクションを始めます — One Minute Notesです。ITの重要なトピックに関する短いノートで、たった1分で読んで基本的な概念を理解できます。One Minute Notesのこのエピソードでは、C#のデリゲートが何なのか、なぜ必要なのかについて話しましょう。
⚡
デリゲートは、後で呼び出すことができる関数用のプレースホルダーと考えることができます。整数値を格納する変数を宣言するように、関数を値として格納する変数を宣言することができ、これによって実行時に呼び出す関数を変更することができます。
以下にデリゲートの定義と使い方の例を示します。もちろんこれは最も単純な実装です。実際の例では条件に基づいてデリゲートする関数を選択するためにif文やswitchが含まれるかもしれません。
public delegate int BinaryOperation(int a, int b);
class SampleClass
{
public static int Add(int a, int b)
{
return a + b;
}
static int Subtract(int a, int b) => a - b;
static void Main(string[] args)
{
BinaryOperation operation = Subtract;
int x = operation(10, 2); // 8
operation = Add;
int x = operation(10, 2); // 12
}
}
全画面表示モードに入る / 全画面表示モードを終了する
面白い事実: .NETの基本クラスライブラリにも、最もポピュラーなユースケースをカバーする事前定義されたデリゲートがあり、自分自身でデリゲートを実装する必要は通常ありません。Action
デリゲートはパラメーターを取ることができるvoid関数を表します。例えば、Action<string> printText = x => Console.WriteLine(x);
です。Func
デリゲートもあり、値を返す関数を定義します。全体的には同じシグネチャですが、最後のパラメーターが戻り値の型を定義します。上記の例で、Add関数はFunc<int, int, int>
デリゲートにも割り当てることができます。
このOne Minute Noteは役に立ちましたか?いいねをクリックしてフォローして、今後も読んでみてください🙂
こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/yellalena/one-minute-notes-delegates-in-c-c46