“重构警告”对话框

更新:2007 年 11 月

此警告对话框指示编译器没有完全理解程序,重构引擎可能没有更新所有合适的引用。此警告对话框还为您提供了在提交更改之前在“预览更改”对话框中预览代码的机会。

说明:

如果方法中包含语法错误(IDE 以红色波浪下划线指示该错误),则重构引擎将不会更新该方法中对元素的任何引用。下面的示例阐释了此行为。

默认情况下,如果执行重构操作而不预览引用更改,并且在程序中检测到编译错误,则开发环境将显示此警告对话框。

如果执行已启用“预览引用更改”的重构操作,并在程序中检测到编译错误,则开发环境将在“预览更改”对话框的底部显示下面的警告消息,以替代“重构警告”对话框:

当前未生成项目或其中一个依赖项。可能未更新引用。

此重构警告只可用于提供“预览引用更改”选项的重构操作,该选项在下列重构对话框中可用:

  • 每次显示此对话框
    默认情况下此选项处于选中状态。如果选择此选项,则当在执行重构操作的过程中检测到编译错误时,将继续显示“重构警告”对话框。

    清除此复选框将对以后的重构操作禁用此警告对话框。如果要清除此复选框,然后再为将来的重构操作重新启用此警告对话框,则请在“选项”对话框 ->“文本编辑器”->“C#”->“高级”中选择“如果在重构时存在生成错误则发出警告”选项。

  • 继续
    继续当前的重构操作,而不预览引用更改。

  • 预览
    打开“预览更改”对话框,以便可以预览代码。

  • 取消
    取消当前的重构操作。代码中将不发生任何更改。

示例

下面的代码示例阐释重构引擎不更新引用的情况。如果使用重构将 example 重命名为其他名称,则 ContainsSyntaxError 中的引用将不会更新,而其他两个引用将被更新。

    public class Class1
    {
        static int example;

        static void ContainsSyntaxError()
        {
            example = 20
        }

        static void ContainsSemanticError()
        {
            example = "Three";
        }

        static void ContainsNoError()
        {
            example = 1;
        }
    }

请参见

概念

重构