Visual Studio 2017快速操作:灯泡图标与新螺丝刀图标差异咨询
Visual Studio 2017 15.7.0快速操作图标变化解析
嘿,这个图标替换其实是Visual Studio团队在15.7版本里做的细分优化,目的是帮我们更快区分不同类型的代码操作:
- 螺丝刀图标:专门对应重构类快速操作,比如提取方法、重命名、封装字段、更改方法签名这类优化代码结构的操作。你示例里的
ObjectCollection<T>类,不管是对类本身做重构(比如提取接口),还是对成员做调整(比如把Items属性改成带逻辑的实现),都会触发这个图标。 - 熟悉的灯泡图标:并没有消失哦,它依然负责代码修复、语法补全类的操作——比如添加缺失的
using指令、修复未初始化的变量、实现接口未完成的成员这些偏向"修正补全"的场景,还是会显示灯泡。
举个直观的例子:
- 当你把光标放在未赋值的
Items属性上,VS提示你"字段未初始化"时,弹出的还是灯泡; - 但如果你选中
_loaderOperation相关的代码块,想把它提取成一个独立方法,这时就会出现螺丝刀图标。
你的示例代码片段(补全后大概是这样):
internal sealed class ObjectCollection<T> { private readonly Func<IEnumerable<T>> _loaderOperation; internal T Items { get; } internal ObjectCollection(Func<IEnumerable<T>> loaderOperation) { _loaderOperation = loaderOperation; // 这里如果未初始化Items,会触发灯泡提示 // Items = _loaderOperation().FirstOrDefault(); } }
这个设计调整其实是为了让我们不用点进去看选项,一眼就能判断操作类型,效率反而更高啦~
内容的提问来源于stack exchange,提问作者rory.ap
相关产品推荐
相关产品推荐

