【问题标题】:Resharper custom pattern varResharper 自定义模式变量
【发布时间】: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” 关键字已在某处硬编码 :( 他们绝对应该解决这个问题。

标签: c# visual-studio resharper var


【解决方案1】:

Resharper 对“var”关键字进行了 2 次代码检查。转到Resharper->Options...->Code Inspection->Inspection Severity 并将“尽可能使用'var'关键字”更改为较低的严重性。 (注意,在检查严重性屏幕上,您可以在顶部的文本框中搜索单词)

【讨论】:

    【解决方案2】:
    1. “锐化”菜单
    2. “选项”
    3. “代码检查”,然后从“检查严重性”中,找到“尽可能使用 Var 关键字”并设置为“不显示”

    【讨论】:

    • “我不喜欢这个选项,因为太多的 var 会让事情变得不清楚,所以我禁用了这个选项。”
    猜你喜欢
    • 1970-01-01
    • 2014-04-25
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多