VS 2023建议foreach中int换var的原因及关闭该建议的方法
关于VS建议把
int换成var的问题解答 为什么VS会给这个建议?
VS内置的代码分析工具,会在变量类型能从上下文100%确定的时候,建议用var代替显式类型。你的代码里dirIds的元素肯定是int(不然编译直接报错),编译器完全能推断出dirId的类型,所以工具觉得用var可以减少冗余代码,让写法更简洁,符合C#推崇的简洁性规范。
能不能关闭这个建议?
当然可以,有几种方式:
- 全局设置:打开VS的「工具」→「选项」→「文本编辑器」→「C#」→「代码样式」→「变量声明」,把「首选隐式类型」改成「从不」,或者单独调整循环变量的规则。
- 局部抑制:如果只是不想改这一处,可以加注释屏蔽警告。VS内置规则的ID是IDE0007,写
#pragma warning disable IDE0007在代码上方,用完再用#pragma warning restore IDE0007恢复即可;如果是Resharper这类插件的建议,就用// ReSharper disable once UseVarKeyword。
觉得int比var好,这种想法有误区吗?
不能算误区,完全看场景和团队习惯:
- 如果团队里新手多,或者
dirIds的类型不那么直观(比如是自定义集合类型),显式写int确实能让代码可读性更高,一眼就知道变量类型,这时候坚持用int没问题。 - 但如果
dirIds就是List<int>这种一目了然的类型,用var也不会有歧义,反而更简洁。而且以后要是dirIds的类型改成long,用var的话循环变量不用跟着改,代码维护起来更方便。
说白了,没有绝对的对错,关键是团队代码风格统一,同时保证代码好读、好维护就行。
内容的提问来源于stack exchange,提问作者frhubert
相关产品推荐
相关产品推荐

