2010-03-05 119 views
4

在C#中,什麼是執行框架(也與此相關,我聽說過激活框架)。 IIRC它是一個方法參數去的插槽,但不能記住所有的細節。什麼是執行框架?

感謝

回答

2

我相信你指的堆棧幀 - 在這種情況下,答案是不特定於C#或者實際上任何特定的語言,而是你的程序執行的平臺。從Wikipedia articleCall Stack

調用棧是由堆疊的 幀(有時稱爲活化 記錄)。這些是依賴於機器的 包含子程序 狀態信息的數據結構。每個堆棧幀 對應於對尚未以 返回結束的子程序 的調用。

另請參閱this answer to a previous question瞭解堆棧的優秀描述,包括堆棧幀。

+0

那麼執行框架與堆棧框架是一樣的嗎?我已經看到了單獨使用的術語,但我的意思是exec框架(我知道堆棧框架)。 – dotnetdev 2010-03-06 01:01:31

+0

是的,我相信這些術語通常是同義詞,至少在C#的情況下。 – razlebe 2010-03-06 01:42:39

+0

請參閱@nobugz的其他答案 - 看起來「執行框架」在一些其他語言(尤其是Python)的上下文中可能具有不同的含義。 – razlebe 2010-03-07 19:50:41

5

「執行框架」是一種在解釋型語言中使用的術語,特別是Python。這是一個與C#非常不同的執行模型。最接近的等價物是C#方法中的作用域塊,它是用花括號括起來的一段代碼。雖然Python執行框架也可以擴展到函數的主體,但現在它相當於C#中的堆棧框架。這是激活幀的另一個術語。

C#編譯器可以識別C#中的作用域塊本地的聲明。運行時不會,它只能識別在整個方法的生命週期內活動的堆棧幀。編譯器通過簡單地將所有作用域塊中的所有局部變量的總和聲明爲激活幀,從而簡化了這種差異。這是Python解釋器無法承受的奢侈品。

+0

+1教育我。我喜歡這個網站。 – razlebe 2010-03-07 19:51:29