• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# 匿名メソッドについて)

C#匿名メソッドについての不思議な現象

このQ&Aのポイント
  • C#の匿名メソッドについて疑問があります。
  • 特に、変数messageがCreateMethodメソッドからリターンした瞬間に消滅するが、匿名メソッドが呼ばれるのはその後ということが不思議です。
  • インスタンスされたクラスはMainメソッドを最初に読みに行き、CreateMethodメソッドが実行され、その中でreturnした結果がactionに代入されると考えられますが、不思議な点が理解できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>では、 >MyAction action = CreateMethod(); >を実行すると、 >actionの中に >{ >Console.WriteLine(message); > }; >が入り、 > >action(); // 出力:Hello! World! >で実行されるということでしょうか? actionに { Console.WriteLine(message); }; が直接入るわけではなく、呼び出すための情報が入るといった方が近いかと思います。

satisfied999
質問者

お礼

だいぶ理解に近づいたと思います。ありがとうございます。 デリゲートからコツコツ勉強していきます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

CreateMethod()の実行中に匿名メソッドの { Console.WriteLine(message); }; が実行されてると思われているのなら、それは間違ってます。 匿名メソッドが実行されるのは action(); // 出力:Hello! World! です。

satisfied999
質問者

補足

はい、そう思っていました。 action(); // 出力:Hello! World! で実行されていたのですね!!! では、 MyAction action = CreateMethod(); を実行すると、 actionの中に { Console.WriteLine(message); }; が入り、 action(); // 出力:Hello! World! で実行されるということでしょうか?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

何をいっているのかわかりません. 「その実行した中でreturn”message”が結果的にされる。」とはどういうことですか? どこに return があるんですか? 「そして、それがactionに代入されるという流れ」の「それ」ってなんですか?

関連するQ&A