Resharper自定义模式var

7
Resharper的代码检查建议在C#中几乎所有地方都使用var而不是显式类型。 我不喜欢这个选项,因为太多的var会使事情变得不清晰,所以我已经禁用了该选项。 但是,在初始化时与泛型相同行两次使用类型(类似于Java 7中的钻石运算符)的情况下,我喜欢使用var,例如:
Dictionary<string string> dic = new Dictionary<string, string>();
// I want a suggestion to replace this to
var dic = new Dictionary<string, string>();
// but I don't want to replace things like this:
Person p = new Person();

我在Resharper中创建了一个自定义模式:
Dictionary<$type1$, $type2$> $id$ = new Dictionary<$type1$, $type2$>();

替换为:

var $id$ = new Dictionary<$type1$, $type2$>();

这个方法本来运行良好,但是该模式还会匹配已经根据规则转换过的行。如何解决这个问题?

编辑:将文本的一部分加粗,因为似乎没有人读它。


1
有趣。我认为这可能只是“搜索模式”功能的限制。 - Patrick Quirk
我认为他们自己预先制定的规则,比如“尽可能使用var关键字”,也是用相同的语法制定的,所以他们也必须解决这个问题。如果我能看到他们预先制定的规则的源代码作为一个例子就好了。 - user968698
我想创建一个规则,将“var x = string_expression”替换为“string x = string_expression”,但似乎不可能。 “var”关键字已经在某个地方硬编码了:(他们肯定应该修复这个问题。 - Funbit
2个回答

1

Resharper有两个关于'var'关键字的代码检查。前往Resharper->选项...->代码检查->检查严重程度并将'尽可能使用'var'关键字'的严重程度降低。(注意,在检查严重程度屏幕上,您可以在顶部的文本框中搜索单词)

enter image description here


-3
  1. “Resharper” 菜单
  2. “选项”
  3. 从“代码检查”中,找到“检查严重性”,然后找到“尽可能使用 Var 关键字”,将其设置为“不显示”

1
我不喜欢那个选项,因为太多的变量会使事情变得不清晰,所以我已经禁用了那个选项。 - Sayse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接