我喜欢对所有非本地变量使用'this'语句:for属性,类变量等。我这样做是为了方便阅读代码,很容易理解这个变量的来源
object someVar;
object SomeProperty { get; set }
void SomeMethod(object arg1, object arg2)
{
this.SomeProperty = arg1;
this.someVar = arg2;
}
您如何看待,使用'this'的正确方法是什么?
答案 0 :(得分:6)
this
是一件好事。 this
消除歧义。
O_O:
public class Foo
{
private string bar
public Foo(string bar)
{
bar = bar;
}
}
下划线是蹩脚的(它是C#,而不是C ++):
public class Foo
{
private string _bar
public Foo(string bar)
{
_bar = bar;
}
}
耶:
public class Foo
{
private string bar
public Foo(string bar)
{
this.bar = bar;
}
}
答案 1 :(得分:2)
我以前只在构造函数中使用它,这样我就可以使成员变量与ctor参数同名,以保持一致性。现在我正在使用auto properties,我根本不在任何地方使用它,除非我有成员变量,我不想要作为属性(我只是不喜欢完全私有属性;似乎有些奇怪)。
答案 2 :(得分:1)
通常我会使用'this'关键字来消除类/对象变量和方法参数之间的任何歧义。
答案 3 :(得分:1)
使用此有两个强制性角色
当你必须打破函数参数,局部变量名和属性之间的歧义时。如果我使用 this ,它只会在构造函数中,因为它是使用相同名称唯一有意义的地方。
void SomeMethod(对象SomeProperty,对象someVar) { this.SomeProperty = SomeProperty; this.someVar = someVar; }
每当需要将对当前对象的引用传递给另一个方法时。过于频繁地传递你的对象是一种代码味道。
其他任何事情都可能过于冗长。不要使用你不需要的东西。
答案 4 :(得分:1)
我喜欢在分配继承属性时使用它。
答案 5 :(得分:0)
我只在构造函数或方法参数与某种成员变量发生冲突时才使用它。可以是属性或字段或其他。但这并不是经常发生的。所以我很少使用它。
我认为ReSharper删除了this.
不需要的地方。也许默认情况下......它确实在这里,但不确定它是否是默认行为:p