选项,文本编辑器,C#,高级

可使用“高级”选项页修改 C# 的编辑器格式设置、代码重构设置和 XML 文档注释设置。 要访问此选项页,请选择“工具”>“选项”,然后选择“文本编辑器”>“C#”>“高级” 。

备注

并非所有选项都会在此处列出。

分析

  • 对以下项运行后台代码分析...

    选择以下选项之一:

    选项 Description
    禁用所有分析器和相应的代码修复。

    对所有打开的文档启用编译器诊断和相应的代码修复。
    当前文档(默认) 所有分析器仅对当前活动的文档运行。

    对所有打开的文档启用编译器诊断。
    打开的文档 对所有打开的文档启用所有分析器和编译器诊断。
    整个解决方案 解决方案中的所有文档(无论是打开还是关闭)上都启用了所有分析器和编译器诊断。

Using 指令

  • 对 using 排序时将“System”指令排在第一位

    当你选择右键单击菜单中的“删除和排序 Using”命令后,它会对 using 指令进行排序,并将“System”命名空间置于列表顶部。

    排序前:

    using AutoMapper;
    using FluentValidation;
    using System.Collections.Generic;
    using System.Linq;
    using Newtonsoft.Json;
    using System;
    

    排序后:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using AutoMapper;
    using FluentValidation;
    using Newtonsoft.Json;
    
  • 单独的 using 指令组

    当你选择右键单击菜单中的“删除和排序 Using”命令后,它会在具有相同根命名空间的指令组之间插入空行,以将 using 指令分隔开来。

    排序前:

    using AutoMapper;
    using FluentValidation;
    using System.Collections.Generic;
    using System.Linq;
    using Newtonsoft.Json;
    using System;
    

    排序后:

    using AutoMapper;
    
    using FluentValidation;
    
    using Newtonsoft.Json;
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    
  • 建议对 .NET Framework 程序集中的类型使用 using

  • 建议对 NuGet 包中的类型使用 using

    选择这些选项时,快速操作可用于安装 NuGet 包,并为未引用的类型添加 using 指令。

    Quick Action to install NuGet package in Visual Studio

  • 粘贴时添加缺少的 using 指令

    选择此选项后,将类型粘贴到文件时,using 指令将自动添加到代码中。

Highlighting

  • 突出显示对光标下符号的引用

    光标定位在符号内,或单击某个符号时,将突出显示代码文件中该符号的所有实例。

大纲显示

  • 打开文件时进入大纲模式

    选中后,会自动大纲显示代码文件,这将创建可折叠代码块。 首次打开文件时,#region 块和非活动代码块处于折叠状态。

  • 显示过程行分隔符

    文本编辑器指示过程的可视范围。 在项目的 .cs 源文件中,在下表列出的位置处绘制行:

    .cs 源文件中的位置 行位置示例
    在块声明构造结束之后 - 在类、结构、模块、接口或枚举的末尾
    - 在属性、函数或子类之后
    - 不在属性中的 get 和 set 子句之间
    在一组单行构造之后 - 在类文件中的导入语句之后,在类型定义之前
    - 在类中声明的变量之后,在所有过程之前
    在单行声明(非块级声明)之后 - 在导入语句、继承语句、变量声明、事件声明、委托声明和 DLL 声明语句之后

块结构指南

如果选中这些复选框,可以在代码中的大括号 ({}) 之间显示虚竖线。 然后,就可以轻松查看声明级构造和代码级构造的各个代码块了。

注释

  • 为 /// 生成 XML 文档注释

    选中后,在键入 /// 命令说明后为 XML 文档注释插入 XML 元素。 有关 XML 文档的详细信息,请参阅 XML 文档注释(C# 编程指南)

提取方法

  • 不要在自定义结构上放置 ref 或 out

    取消选中此复选框,以避免在将表达式提取到方法调用中时通过重新引用现有结构对象来意外克隆结构。

    示例

    假设代码中存在以下 classstruct

    public struct CustomStruct
    {
        private int Count;
    
        public int Bump => ++Count;
    }
    
    public class CustomClass
    {
        public void DoIt()
        {
           CustomStruct cs = new CustomStruct();
           int i = 0;
    
           i += cs.Bump;   // select this line
        }
    }
    

    如果取消选中“不要在自定义结构上放置 ref 或 out”选项,则“提取方法”功能将生成以下内容:

    public class CustomClass
    {
        public void DoIt()
        {
           CustomStruct cs = new CustomStruct();
           int i = 0;
    
           NewMethod(ref cs, ref i);
        }
    
        private static void NewMethod(ref CustomStruct cs, ref int i)
           => i += cs.Bump;
    }
    

    如果选中“不要在自定义结构上放置 ref 或 out”选项,则“提取方法”功能将生成以下内容:

    public class CustomClass
    {
        public void DoIt()
        {
           CustomStruct cs = new CustomStruct();
           int i = 0;
    
           i = NewMethod(cs, i);
        }
    
        private static int NewMethod(CustomStruct cs, int i)
        {
           i += cs.Bump;
           return i;
        }
    }
    

内联提示

  • 内联参数名称提示

    如果选择此项,则会在函数调用中的每个参数之前插入文本、强制转换文本和对象实例化的参数名称提示。

    Inline Parameter Name Hints for CSharp

  • 内联类型提示

    选中后,为具有推断类型和 lambda 参数类型的变量插入类型提示。

    Inline Type Hints for CSharp

继承边距

  • 如果选择此项,则会向表示代码的实现和替代的边距添加图标。 单击“继承边距”图标将显示可以选择导航到的继承选项。

    Inheritance Margin

另请参阅