共用方式為


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

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

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

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

    使用中陳述式包含了在呼叫堆疊的函式中,為了取得目前陳述式而呼叫的任何陳述式。

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

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

    • 加入新類型。

    • 將方法加入至類型。

    • 變更類型的簽章。

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

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

  • 加入新的匿名方法。

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

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

  • 移除或變更區域變數。 可以加入區域變數。

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

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

  • 變更具有以匿名方法初始化之欄位的建構函式。

Unsafe 程式碼

變更 Unsafe 程式碼的限制與變更 Safe 程式碼的限制相同,但前者多了下列這一項額外限制:

  • [編輯後繼續] 不支援對包含 stackalloc 運算子之方法內的 Unsafe 程式碼進行變更。 這項限制只適用於使用中方法。 當您進行偵錯時,目前位於呼叫堆疊上的任何函式都是使用中陳述式。

例外狀況

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

  • 如果使用中函式是呼叫堆疊上最新的函式,則在這個函式中,[編輯後繼續] 不支援:

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

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

  • 如果使用中函式不是呼叫堆疊上最新的函式,則在這個函式中,[編輯後繼續] 不支援:

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

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

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

不支援的案例

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

  • 偵錯 LINQ 程式碼。 如需詳細資訊,請參閱偵錯 LINQ

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

  • SQL 偵錯

  • 偵錯 Dr. Watson 傾印。

  • 在未選取 [發生未處理的例外狀況時回溯呼叫堆疊] 選項的情況下,於發生未處理的例外狀況後編輯程式碼。

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

  • 對具有 [附加至] 的應用程式進行偵錯,而不是從 [偵錯] 功能表選擇 [啟動] 執行應用程式。

  • 偵錯最佳化程式碼

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

請參閱

工作

如何:使用編輯後繼續 (C#)

參考

編輯後繼續 (Visual C#)