Visual Basic 編輯後繼續中不支援的編輯
[編輯後繼續] 可讓您在中斷模式停止程式執行、變更執行中的程式碼,然後以新加入的變更繼續執行程式。 通常會禁止影響類別之公用結構的宣告式程式碼編輯,但是允許對類別內的方法、屬性主體或私用宣告進行多項編輯。 [編輯後繼續] 會盡可能將無法編輯的程式碼標示為淺灰色。
如果您必須進行任何不支援的變更,則必須先停止偵錯,進行變更,然後開始新的偵錯工作階段。
本主題內容
下列章節將描述 [編輯後繼續] 不支援的編輯。
方法和屬性主體編輯
不支援的靜態區域變數變更
- 移除靜態區域變數。
不支援的反覆項目建構變更
當指令指標位於條件中時,修改 While 迴圈的條件。
當指令指標位於運算式中時,修改 For 陳述式的下限或上限。
指令指標在列舉程式運算式中使用時,加入或移除 Next 迴圈。
指令指標位於迴圈的主體中時,加入 For Each 迴圈。
當指令指標位於列舉程式運算式或迴圈主體中時,變更 For Each 迴圈的迭代器。
當指令指標位於列舉程式運算式中時,變更 For Each 迴圈的列舉程式運算式。
不支援的泛型變更
- 不支援對泛型方法本身或泛型方法主體進行變更。 可以加入、刪除或變更泛型類型的具現化或對現有泛型方法的呼叫。
其他不支援的變更
變更呼叫堆疊上方法的引動過程陳述式。
當指令指標最後位於 Catch 區塊或 Finally 區塊中時,加入 Try...Catch 區塊。
當指令指標位於 Catch區塊或 Finally 區塊中時,移除 Try...Catch 區塊。
在目前指令指標前後加入六個或更多個巢狀 Try 陳述式。
在目前指令指標前後加入 Using 區塊。
在目前指令指標前後加入 SynchLock 區塊。
加入、移除或修改使用者定義的 #region。
屬性編輯
[編輯後繼續] 不支援修改屬性。 具體而言,[編輯後繼續] 不支援下列變更:
定義、編輯或刪除屬性類別。
加入屬性。
編輯或移除現有的屬性。
類別宣告編輯
處於中斷模式時,[編輯後繼續] 不允許對類別宣告進行的大多數變更。 具體而言,[編輯後繼續] 不支援下列變更:
建立新類別。
重新命名、刪除或變更現有類別的繼承。
實作新介面,或移除介面的實作。
變更類別上的下列任何修飾詞:MustInherit、NotInheritable 或 Shared。
加入、變更或移除 ComClass 狀態。
變更類別的存取修飾詞。
編輯任何泛型類別宣告。
類別成員宣告編輯
大部分 [編輯後繼續] 案例中都禁止對成員宣告進行變更。 例如,在中斷模式期間,您無法變更成員的簽章或存取層級、無法宣告新的非私用方法或屬性,也無法完全移除成員。 具體而言,[編輯後繼續] 不支援下列變更:
在包含區塊中宣告相同名稱的全域或成員變數,以遮蔽現有成員變數。
在區塊內宣告新的執行個體,以遮蔽靜態區域變數。
加入新的非私用屬性或方法。 允許加入 Private 屬性或方法。
加入新欄位,除非該欄位是 Private,而且在任何使用中陳述式內都未出現該欄位名稱。
在標記為 SequentialLayout 或 ExplicitLayout 的任何類別中加入新的 Private 欄位。
加入或刪除建構函式。
移除事件的處理常式。 允許加入事件處理常式。
加入新的多載屬性或方法,除非該屬性或方法是 Private,而且在任何使用中陳述式內都未出現該名稱。
加入或移除成員變數上的 WithEvents 子句。
刪除成員。
變更屬性或方法宣告,以停止實作介面。
編輯任何使用泛型的方法。
變更非私用屬性或方法的簽章或傳回類型。
覆寫或遮蔽基底類別中的成員。
變更方法的 MustInherit 或 NotOverridable 狀態。
變更屬性或方法的存取修飾詞。
變更欄位的類型或唯讀狀態。
變更公用欄位。
編譯器選項編輯
在中斷模式下使用 [編輯後繼續] 時,您無法變更、加入或移除下列編譯器選項:
Option Strict
Option Explicit
Option Compare
條件式編譯編輯
處於 [編輯後繼續] 模式時,對條件式編譯指示詞的大多數變更都不允許。 具體而言,[編輯後繼續] 不支援下列變更:
加入或移除條件式編譯指示詞。
加入、移除或變更條件式編譯陳述式的評估運算式。
常數編輯
處於 [編輯後繼續] 模式時,對於常數的變更會受到嚴格的限制。 具體而言,[編輯後繼續] 不支援下列變更:
定義新的常數,除非該常數為 private,而且在任何使用中陳述式內都未出現該常數名稱。
變更常數的類型或值。
移除常數。
委派和事件宣告編輯
處於中斷模式時,[編輯後繼續] 不允許對委派和事件進行的大多數變更。 具體而言,[編輯後繼續] 不支援下列變更:
定義新的委派。
變更或刪除委派定義。
定義新的事件。
刪除事件。
列舉編輯
在中斷模式期間,[編輯後繼續] 不允許對列舉 (Enums) 進行變更。 具體而言,[編輯後繼續] 不支援下列變更:
定義新的 Enum。
修改 Enum 的基礎類型。
加入、變更或移除 Enum 成員。
變更 Enum 的存取修飾詞。
外部宣告編輯
一般來說,您無法在 [編輯後繼續] 期間變更外部方法的宣告。 具體而言,[編輯後繼續] 不支援下列變更:
加入或移除外部宣告。
變更外部宣告的簽章或封送處理屬性。
匯入編輯
處於中斷模式時,[編輯後繼續] 不允許加入、變更或移除 Imports 陳述式。
介面定義編輯
雖然 [編輯後繼續] 可讓您經常變更實作介面的成員,但通常不允許變更實際介面定義。 具體而言,[編輯後繼續] 不支援下列變更:
定義新的介面。
加入、變更或移除介面成員。
刪除現有的介面。
變更介面的存取修飾詞。
變更介面繼承階層。
模組宣告編輯
處於中斷模式時,[編輯後繼續] 不允許對模組宣告進行的大多數變更。 具體而言,[編輯後繼續] 不支援下列變更:
建立新的模組。
重新命名或刪除現有的模組。
變更模組的存取修飾詞。
模組成員宣告編輯
使用 [編輯後繼續] 可讓您在中斷模式下,對模組成員 (例如屬性、方法和欄位) 進行各種變更。 不過,有些變更並不支援。 最值得注意的是,[編輯後繼續] 不支援加入、刪除或變更非私用成員的類型或簽章。
具體而言,[編輯後繼續] 不支援下列變更:
加入新成員,除非該成員是 Private,而且在任何使用中陳述式內都未出現該名稱。
移除屬性或方法。
變更非私用屬性或方法的簽章。
編輯任何使用泛型的方法。
變更屬性或方法的存取修飾詞 (例如,將 Public 變更為 Private)。
刪除或變更現有欄位的類型。
巢狀類型宣告編輯
一般而言,使用 [編輯後繼續] 時,無法在中斷模式下變更巢狀類型宣告。 具體而言,[編輯後繼續] 不支援下列變更:
加入新的巢狀類型。
將巢狀類型移至另一個命名空間或類型。
結構宣告編輯
處於「中斷」模式時,[編輯後繼續] 不允許對結構宣告進行的大多數變更。 具體而言,[編輯後繼續] 不支援下列變更:
建立新的結構。
重新命名或刪除現有的結構。
實作新介面,或移除介面的實作。
變更結構的存取修飾詞。
結構成員宣告編輯
使用 [編輯後繼續] 可讓您在中斷模式下,對結構成員 (屬性、方法和欄位) 進行各種變更。 不過,某些變更並不支援,尤其是會影響結構成員宣告的變更。 具體而言,[編輯後繼續] 不支援下列變更:
加入或移除屬性或方法,包括建構函式方法 (除非該方法是 Private,而且在任何使用中陳述式內都未出現該欄位名稱)。
變更屬性或方法的簽章。
編輯任何使用泛型的方法。
對屬性或方法宣告實作介面的狀態進行變更。
變更屬性或方法的存取修飾詞 (例如,將 Public 變更為 Private)。
加入或移除欄位。
變更欄位類型。