C#で何か作る日記

C#初学者が何かを作るその過程を備忘録として書いていく日記。同じようなことで悩んでいる1人、2人の役に立てたら嬉しいな。プログラムの他にたまに3Dモデルも作ったり作らなかったり。

続・デリゲート

前回に引き続きデリゲートを。

色々試してみてちょっと兆しが見えてきた。

f:id:MrSoumen:20171001185439p:plain

左側のようにCommandクラスを作成して、右側でそのCommandクラスを呼び出そうとしているところ。

public Action Invoke;

には、引数、返り値なしのDammy2関数を代入することができる。

一方、

public Delegate Undo;

には、引数なし、返り値boolのDammy1もDammy2も代入することができない。
エラーの内容は

CS0428 メソッド グループ 'Dammy1' を非デリゲート型 'Delegate' に変換することはできません。このメソッドを呼び出しますか?

Actionもデリゲートの一種じゃないの?といまいち納得がいかない。

public delegate bool Redo();

はデリゲートを宣言するだけで、そこにDammy1を代入できないことはなんとなく分かる。
そこで

public delegate bool Redo();
public Redo redo;

こんな風にredo変数を作ればそこに代入できるっぽいことは分かった。

全体的に納得がいっていないけど最後の方法で進めていこうかな。