我应该何时在代码中使用this
- 关键字作为属性?
public class MyClass {
public string MyString { get; private set; }
public void MyMethod() {
OtherClass.DoStuff(MyString); // Or this.MyString?
}
}
我知道如果属性的和类型相同,那么 要使用this.
才能使其正常工作。
public string Emailer Emailer { get { return _emailer; } }
在课程中使用{strong>属性甚至方法的this.
有哪些指导原则?我知道它在编译代码中没有任何区别。这就是......屏住呼吸......最佳实践。
答案 0 :(得分:4)
做你和你的团队最可读的事情。有些人喜欢明确;我实际需要时只指定this
。它对编译的代码没有任何影响。
答案 1 :(得分:2)
如果参数名称和实例成员具有相同的名称,则需要使用this
。
像:
public class MyClass
{
private string something;
public void SomeMethod (string something)
{
this.something = something;
}
}
但我建议你以这种方式选择你永远不需要使用this
的名字。否则只是要求麻烦 - 迟早你会忘记this
某处,并且很难调试你的代码。
答案 2 :(得分:1)
是否使用this
主要是偏好问题,因此没有正确或错误的答案。尽管有开发者,它可能会成为一场宗教战争。我经常发现最好以这种或那种方式就团队达成协议,然后使用StyleCop来执行决定。
我个人更喜欢简洁,只有在实际需要时才使用this
。但是我会在这里选择代码库一致性,因为这是一个相当小的问题。
有一些情况明确需要它。我想到了扩展方法,在某些情况下可以消除标识符的歧义。我发现这些相当罕见。