1

匿名メソッドデリゲートアクション、機能などは、コンピュータにメモリを割り当て/消費/食べますか?

もしそうなら、彼らはキャプチャされたコードブロックの各変数に同じメモリを割り当てますか?

4

3 に答える 3

7

もちろん、他の通常の機能と同じように機能します。それらがメモリのどこかに「保存」されない場合、実行時にどのように実行できますか?

しかし、(動的メモリの割り当てのように)すべての呼び出しでより多くのメモリを消費するかどうかを尋ねている場合は、いいえ、彼らは自分でそれを行いません。

于 2013-03-07T10:40:10.283 に答える
2

はい、すべてのものにメモリ内のある種のバッキングストアが必要になります。

于 2013-03-07T10:34:39.697 に答える
1

デリゲートを定義すると、新しいクラスが定義されます。したがって、これにはクラスに関する情報を格納するためのメモリが必要です(実行時も)。

Funcまたはを特定の汎用型で定義Actionすると、実行時に新しいクラスが定義されます(非表示になります)。したがって、これにもメモリが必要です。

匿名メソッドは、コンパイラによってぎこちない名前の通常のメソッドになり、プライベートクラスに入れられます。次に、他の方法と同様に、実行する必要のあるコードを格納するために実行時にメモリが必要になります。また、このクラスには、他のクラスと同じようにメモリが必要です。

于 2013-03-07T11:22:07.383 に答える