'this'关键字是多余的

Dav*_*ave 0 c# this-keyword

我在我的C#项目中使用Resharper.

我创建了一些私有全局变量,通常我使用'this'关键字来为变量名添加前缀(例如this.FirstName).

Resharper显然希望我使用下划线而不是'this',但实际上足够大胆地声明'this'关键字是多余的.在MSDN网站上没有提到这一点; 我的印象是,无论你使用什么命名约定(使用_或this.或大写/小写),最终都是用户的选择(即使是MSDN网站也会混淆一下(尽管从不相同)类)).

任何人都可以澄清他们是否听过这样的话,或者你觉得多余的评论只是Resharper的意见,因为声称似乎有些荒谬.

Kon*_*lph 9

"冗余"意味着不必要.由于在这些情况下编译器显然不需要关键字,因此ReSharper是正确的.

你是否有文体异议是另一回事.我确信ReSharper可以配置为忽略这些用途,如果这更适合你.


Arr*_*ran 5

其他答案很好地解释了这一点,补充一件事:this有时可以派上用场:

public class User
{ 
    private string firstname;

    public User(string firstname)
    {
       this.firstname = firstname;
    }
}
Run Code Online (Sandbox Code Playgroud)

this 在此处是必需的,因为它们的名称相同,所以它知道您要指的是哪一个。

除此之外,它是个人喜好,在大多数情况下是多余的,但是,如果您认为值得,则可以将其从Resharper的警告中删除。如果使用Stylecop插件,它将在选项中的“代码编辑”下,以及在“代码清除”配置文件中。