私は最初に猫でもわかるC#プログラミングという本でC#の勉強をしましたが、その中で唐突に Func やら Actionやらが登場し、ほとんど説明がなかったのでちんぷんかんぷんでした。
ネットで調べてやっとわかったのですが、ラムダ式を活用するためにも、ここらへんはしっかり説明しておいたほうがいいんじゃないかと思いました。
ラムダ式自体の説明は結構わかりやすかったんですけどね。
というわけで、ここに調べたことを自分なりにわかりやすくまとめておきます。
定義済みデリゲートとは?
デリゲート自体の理解は C における関数ポインタと同じだと考えればすぐに理解できました。
ただ、関数ポインタもそうですが、デリゲートの宣言というのはとても面倒です。
そのため、型パラメーターを使用し、汎用的に使用できるデリゲートが最初からいくつか定義されているようです。
これらのデリゲートのことを、定義済みデリゲートというようです。
どんなのがある?
いろいろあるようですが、よく使用するのは Func と Action だと思います。
簡単に言えば、
- Func: 戻り値を持つメソッドのデリゲート
- Action: 戻り値を持たないメソッドのデリゲート
となります。
どちらも引数の数に応じてオーバーロードされているようです。
詳細は参考URLを参照してください。