2009-12-22 171 views
2

我懷疑我不知道什麼是編譯時間,什麼是C#中的運行時。我從多態性(方法重載,方法重寫)得到這個詞可以解釋我。謝謝編譯時間和運行時間?

+2

我猜Google會更好些。 – Rites 2009-12-22 07:35:20

回答

3

方法重載是在編譯時決定的。這意味着編譯器知道在調用重載方法時將執行哪些代碼。它可以直接調用代碼,而無需添加代碼運行時必須執行的任何檢查。

方法重寫在運行時確定。當你調用一個虛擬方法時,調用的實際方法是根據對象的實際類型確定的,並且在調用完成時必須執行此檢查。由於引用可能引用不同類型的對象,因此編譯器無法從引用類型確定將調用哪個方法,因此它必須添加代碼以查找從哪個類獲取方法。

0

當您在VS IDE中按F6時,您正在編譯。所消耗的時間是編譯時間。

當您在VS IDE中按F5或Ctrl + F5時,您正在運行。所消耗的時間是運行時間。

+0

爲了說明,當你點擊F5或Ctrl + F5時,首先會發生什麼(默認情況下是),如果沒有編譯,編譯程序,然後實際運行程序。 – apollodude217 2010-07-07 22:29:50