public void なにか言う(string s, Action say) => say(s);
public void 言う(string s) => print(s);

public void ぴよって言う()=> なにか言う("ぴよ", 言う);

ぴよって言う()の中身の通り、なにか言う()は出力用の関数を外部からもらう形になっているので、言う()では無い関数を渡すことで、出力先や方法などを容易に変えることが出来ますの。(例えば、ファイルに出力するなど)

ちなみに、値を返さない関数の型はAction、返すものはFuncと書くそうですの。ここではActionを使う例のみ。

名前も微妙に長いしなぜわけたのですの。ぜんぶ、F<>でよかったような。

Actionの場合はまだいいけれど、Funcで「関数を返す関数」を返す、をやりはじめると定義が長くなりがちなので、なるべく短く書ける記法を用意しておいて欲しかったですの。

(あとで思ったけど、たしかにFuncだけだと値を返さない場合を表現しきれないので、わけるのはしょうがなかったのかもですの)

0 コメント: