目次:
定義-呼び出しスタックとはどういう意味ですか?
C#の呼び出しスタックは、プログラムの開始から現在のステートメントの実行まで実行時に呼び出されるメソッドの名前のリストです。
呼び出しスタックは、主に、アクティブな各サブルーチンが実行を終了したときに制御を返すポイントを追跡することを目的としています。 コールスタックは、トレース対象のメソッドを複数のコンテキストで呼び出すことができる場合に、アプリケーションをデバッグするツールとして機能します。 これは、特定のメソッドを呼び出すすべてのメソッドにトレースコードを追加するよりも優れた代替手段となります。 ユーザーコードのどこかに例外がスローされると、共通言語ランタイム(CLR)は呼び出しスタックを解き、特定の例外の種類を特定するためにcatchブロックを検索します。 適切なハンドラーがない場合、CLRはアプリケーションを終了します。 したがって、呼び出しスタックは、実行ポインタに次に進むべき場所を指示するために使用されます。
Techopediaはコールスタックについて説明します
呼び出しスタックは、「スタック」として整理されます。これは、後入れ先出し方式で項目を格納するためのメモリ内のデータ構造です。そのため、サブルーチンの呼び出し元は、終了後に戻りアドレスをスタックと呼び出し先サブルーチンにプッシュします。呼び出しスタックから戻りアドレスをポップして、そのアドレスに制御を移します。
C#では、すべてのアプリケーションは「メイン」メソッドで始まり、他のメソッドを呼び出します。 メソッドを呼び出すたびに、メソッドはスタックの一番上に追加され、呼び出し元に戻るときにスタックから削除されます。 また、ブロックで宣言された変数のスコープは、その値が(呼び出しスタックの一部として)スタックにプッシュされてから、変数と呼び出しスタックがスタックからポップされるときに実行がブロックを離れるまで決定されます。 したがって、スタックはローカル変数(値型)と呼び出しスタック(スタックフレーム)の両方を保持します。そのサイズはプログラムの複雑さを示します。
