在 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,瞧——它又可以工作了!
(如果你愿意,你可以把 const 放回去。)
【讨论】:
以上是关于在 Visual Assist 或 Vanilla Visual Studio 中切换枚举的自动完成功能的主要内容,如果未能解决你的问题,请参考以下文章
在VS2008和VS2010中禁用Visual Assist X
vs2013 有必要 使用 visual assist或resharper吗
Visual_Assist_X和Resharper那个比较好?