在 Visual Assist 或 Vanilla Visual Studio 中切换枚举的自动完成功能

Posted

技术标签:

【中文标题】在 Visual Assist 或 Vanilla Visual Studio 中切换枚举的自动完成功能【英文标题】:Switch autocompletion for enum in Visual Assist or Vanilla Visual Studio 【发布时间】:2014-09-17 09:20:06 【问题描述】:

是否有使用 Visual Assist 或 Vanilla Visual Studio 扩展枚举所有值的开关?包含的片段只需插入一个带有默认条目的基本开关。我正在使用最新的 Visual Studio 2013 更新。

【问题讨论】:

【参考方案1】:

VS 2013 可以使用默认的 sn-p 为枚举构建 switch 语句。 (注意:使用默认的 VS sn-p,而不是 VA Snippet。)

当您键入“swit”时,接受 VS 建议的代码 sn-p。将“switch_on”替换为您的枚举,然后按 Enter。你的陈述将扩大。 (如果一个从列表框中选择了您的枚举,则需要两个 Enter。)

【讨论】:

对我不起作用。更准确地说,它工作了一次,然后两次没有。 VS2015。有什么想法吗? @VioletGiraffe 我也有同样的问题。有时它会起作用,而且很棒。有时该选项不会出现。下面 sean-e 的另一个答案在所有情况下都对我有用。【参考方案2】:

在最初生成 switch 后,如果添加新的枚举值,则可以使用 Visual Assist 中的Add Missing Case Statements 命令用新值 (shift+alt+q, m) 填充 switch 语句。

【讨论】:

【参考方案3】:

在 Visual Studio 2015 中,如果判别器使用 const 声明,则切换用例的自动完成功能将失效,如下例所示:

auto const enu = static_cast<MediaType>(discriminant);

删除 const,瞧——它又可以工作了!

(如果你愿意,你可以把 c​​onst 放回去。)

【讨论】:

以上是关于在 Visual Assist 或 Vanilla Visual Studio 中切换枚举的自动完成功能的主要内容,如果未能解决你的问题,请参考以下文章

在VS2008和VS2010中禁用Visual Assist X

vs2013 有必要 使用 visual assist或resharper吗

Visual_Assist_X和Resharper那个比较好?

Visual Studio 2015 / Visual Assist 自动完成行为

怎样彻底卸载飘云阁visual assist

Visual.Assist.X 怎么在句末加快捷加分号