支援的程式碼變更 (C#)

更新:2007 年 11 月

這個主題適用於:

版本

Visual Basic

C#

C++

Web Developer

Express 版

標題不適用於 標題適用於 標題不適用於 標題適用於

Standard 版

標題不適用於 標題適用於 標題不適用於 標題適用於

Pro/Team 版

標題不適用於 標題適用於 標題不適用於 標題適用於

表格圖例:

標題適用於

套用

標題不適用於

不套用

預設會套用主題但隱藏命令

預設隱藏的命令。

[編輯後繼續] 會處理方法主體內的大多數程式碼變更。但是在偵錯期間,無法套用方法主體外的變更和方法主體內的某些變更。若要套用這些不支援的變更,您必須停止偵錯,然後使用新版程式碼重新啟動偵錯。

偵錯工作階段期間不能將下列變更套用至 C#:

  • 變更目前的陳述式或任何其他使用中陳述式。

    在呼叫堆疊的函式中,使用中陳述式包含了任何陳述式,這些陳述式是被呼叫以取得目前的陳述式。

    目前的陳述式會在來源視窗中以黃色背景標示。其他使用中陳述式會以灰色背景標示,而且是唯讀的。這些預設色彩可以在 [選項] 對話方塊中進行變更。

  • 全域符號的變更包括下列各項:

    • 加入新的型別。

    • 將方法加入至型別。

    • 變更型別的簽章。

    • 將欄位、事件,或屬性加入至型別。

  • 編輯匿名方法,或編輯包含匿名方法的任何方法。這些方法會以灰色背景標示。

  • 加入新的匿名方法。

  • 加入、移除,或變更屬性。

  • 加入、移除或變更 using 指示詞。

  • 移除或變更本機變數。允許加入本機變數。

  • 將 foreach、using 或 lock 加入使用中陳述式前後。

  • 修改包含 yield return 或 yield break 陳述式的方法。

  • 變更具有欄位的建構函式 (Constructor),而這個欄位是以匿名方法進行初始化。

Unsafe 程式碼

除了一些額外的限制之外,變更 Unsafe 程式碼的限制與變更 Safe 程式碼的限制相同:

  • [編輯後繼續] 不支援方法 (包含 stackalloc 運算子) 內不安全的程式碼變更。這只適用於使用中方法。如需詳細資訊,請參閱使用中陳述式

例外狀況

[編輯後繼續] 支援變更 catch、finally、 和 try 區塊,但對使用中方法中的區塊則有一些例外狀況,例如目前位於呼叫堆疊上的方法。

  • 位於使用中函式,而且這個函式是呼叫堆疊上的最後函式時,則 [編輯後繼續] 不支援:

    • 將 catch 或 finally區塊加入使用中陳述式前後。

    • 加入巢狀層次大於六的巢狀例外處理常式。

  • 位於使用中函式,而且這個函式不是呼叫堆疊上的最後函式時,則 [編輯後繼續] 不支援:

    • 將 catch、finally 或 try區塊加入使用中陳述式前後。

    • 加入巢狀層次大於六的巢狀例外處理常式。

    • 變更 try區塊 (包含使用中陳述式) 內的程式碼。

不支援的案例

[編輯後繼續] 無法用於下列偵錯案例中:

  • 偵錯 LINQ 程式碼。如需詳細資訊,請參閱LINQ 的編輯後繼續功能

  • 混合模式 (原生/Managed) 偵錯。

  • SQL 偵錯。

  • 偵錯 Dr. Watson 傾印。

  • 未選取 [發生未處理的例外狀況時回溯呼叫堆疊] 選項,而發生無法控制的例外狀況後編輯程式碼。

  • 偵錯內嵌的執行階段應用程式。

  • 使用 [附加至] 來偵錯應用程式,而不是從 [偵錯] 功能表選擇 [啟動] 來執行應用程式。

  • 偵錯最佳化程式碼

  • 當目標為 64 位元應用程式時,偵錯 Managed 程式碼。如果要使用 [編輯後繼續],就必須將目標設定為 x86(依序選取 [進階編譯器設定]、[編譯] 索引標籤、[專案 屬性])。

  • 由於建置錯誤以致新版本建置失敗之後,偵錯舊版的程式碼。

請參閱

工作

HOW TO:使用編輯後繼續 (C#)

參考

編輯後繼續 (Visual C#)

其他資源

編輯後繼續的錯誤和警告 (C#)