Resharper 自定义模式变量
Posted
技术标签:
【中文标题】Resharper 自定义模式变量【英文标题】:Resharper custom pattern var 【发布时间】:2014-10-14 17:40:53 【问题描述】:Resharper 的代码检查建议在 C# 中使用 var 而不是显式类型。 我不喜欢这个选项,因为太多的 var 会让事情变得不清楚,所以我禁用了这个选项。 但是,我喜欢使用 var 的地方是在初始化时使用相同类型的两倍符合泛型(因此在与 java 7 中的菱形运算符类似的情况下),例如:
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$>();
这可以正常工作,但该模式还会找到已使用规则转换的行。为什么以及如何解决这个问题?
编辑:将部分文本加粗,因为似乎没有人阅读它。
【问题讨论】:
有趣。我认为这可能只是 Search with Pattern 功能的限制。 我认为他们自己的预制规则,如“尽可能使用 var 关键字”是用相同的语法制定的,所以我认为他们也必须解决这个问题。如果我能以他们的预制规则的来源为例。 我想创建一个规则,用“string x = string_expression”替换“var x = string_expression”,但这似乎不可能。 “var” 关键字已在某处硬编码 :( 他们绝对应该解决这个问题。 【参考方案1】:Resharper 对“var”关键字进行了 2 次代码检查。转到Resharper
->Options...
->Code Inspection
->Inspection Severity
并将“尽可能使用'var'关键字”更改为较低的严重性。 (注意,在检查严重性屏幕上,您可以在顶部的文本框中搜索单词)
【讨论】:
【参考方案2】:-
“锐化”菜单
“选项”
“代码检查”,然后从“检查严重性”中,找到“尽可能使用 Var 关键字”并设置为“不显示”
【讨论】:
“我不喜欢这个选项,因为太多的 var 会让事情变得不清楚,所以我禁用了这个选项。”以上是关于Resharper 自定义模式变量的主要内容,如果未能解决你的问题,请参考以下文章
犰狳的自定义 natvis 文件仅适用于 resharper
创建一个自定义属性,提示 Resharper 隐式使用该属性