啟用 [編輯後繼續] 時,修改包含 'yield return' 或 'yield break' 陳述式的 'method | property | indexer | operator' 會阻礙偵錯工作階段繼續進行。
如果您嘗試修改包含 yield return 或 yield break 陳述式的方法、屬性、索引子,或運算元,就會發生這個錯誤。 如需詳細資訊,請參閱 yield (C# 參考)。 在偵錯期間,[編輯後繼續] 不支援這項變更。
請考慮下列程式碼:
class Program
{
private int[] items = { 1, 2, 3 };
System.Collections.Generic.IEnumerable<int> Range(int start, int end)
{
for (int index = start; index < end; index++)
{
yield return items[index];
}
}
static void Main()
{
Program p = new Program();
foreach (int item in p.Range(0, 2))
{
}
}
}
如果您在 yield return items[index] 上設定中斷點,然後開始偵錯並嘗試在 Range 方法中加入區域變數宣告 int a = 10,就會發生這個錯誤。
若要修正這個錯誤
復原變更,然後在不變更的情況下繼續進行偵錯作業。
-或-
在 [偵錯] 功能表上按一下 [停止偵錯],進行變更,然後開始新的偵錯工作階段。