【发布时间】:2016-02-12 15:27:02
【问题描述】:
在使用实例成员时,我的代码总是很明确,在它们前面加上 this. 和静态成员,在它们前面加上类型名称。
Roslyn 似乎不喜欢这样,并礼貌地建议您可以在适当的代码中省略 this. 和 Type....
...所以我会在哪里做这个。.. (没有双关语)
public void DoSomethingCool()
{
this.CallAwesomeMethod();
CoolCucumber.DoSomethingLessAewsome();
}
...roslyn 建议我这样做...
public void DoSomethingCool()
{
CallAwesomeMethod();
DoSomethingLessAwesome();
}
...但是在使用扩展方法时,我似乎不能省略 this. 的使用,例如...
public int GetTotal()
{
// This doesn't work
return Sum(o => o.Value);
// This does
return this.Sum(o => o.Value);
}
问题:
- 为什么 Roslyn 似乎不喜欢明确使用
this.和Type.? - 为什么我需要显式使用
this.扩展方法? - 虽然严格来说不是这个问题的一部分,但我如何解决 Roslyn 不希望我使用
this.和Type.与 StyleCop 的分析器坚持让我使用它们之间的差异?
【问题讨论】:
-
Roslyn 只是因为不喜欢你使用它而脑残。我想 Roslyn 团队成员不需要 IntelliSense,他们是聪明的程序员。但考虑到产品的质量,他们也许应该多用一点。知道何时关闭灯泡由您决定,我们无法帮助您。 Fwiw,当他们选择一个带有明亮背景的图标作为深色配色方案时,其他人正在睡觉。合身和完成显然不够,这需要时间。
-
@HansPassant:可以在选项中轻松禁用此检查。
-
@SLaks 我注意到我的项目中有一个 .ruleset 文件,其中包含项目的所有 Roslyn 和 Stylecop 规则:我坚持 StyleCop 的建议,而不是使用 Roslyn
-
在有些奇异的情况下,在扩展方法上省略
this实际上可能会出现问题:stackoverflow.com/a/27884101/1864167 -
另请注意,ReSharper 认为
this通常也应该被省略。
标签: c# .net roslyn c#-6.0 roslyn-code-analysis