C# では、静的変数がメモリ内に作成され、AppDomain が存続する限り存続することを理解しています。静的メソッドはメモリ内でどのように処理されますか? メソッドは変数のようなスタック/ヒープ上に作成されますか? メソッドGCのようなものはありますか?これはコール スタックとどのように関連していますか?
質問する
83 次
2 に答える
3
メソッドは、ヒープやスタックではなく、コード セグメントに存在します。コードはメモリに読み込まれるだけで、AppDomain が存在する限りそこにとどまります。
静的メソッドと非仮想メソッドにはアドレスだけがあり、コードはメソッドを呼び出すときにアドレスを直接使用します。
仮想メソッドにもアドレスがありますが、直接は使用されません。クラスに関連付けられている仮想メソッド テーブルにはメソッドへのポインターがあるため、コードはテーブルからポインターを取得してメソッドを見つけます。
コール スタックは、スタックの別の用語です。
于 2012-06-08T22:43:17.793 に答える
0
メソッドはヒープ上にあるのではなく、コードの一部です。つまり、静的メソッドまたはインスタンス メソッドです。
于 2012-06-08T22:41:05.073 に答える