1

我有一个看起来像这样的对象的类:

public class SomeObject
{
   int SomeInt { get; set; }

   public void SomeMethod()
   {
       var SomeVar = this.SomeInt;
       var SomeVar2 = SomeInt;
   }
}

当我在类方法中引用类属性时,如果我编写this.SomeInt而不是SomeInt像我分配时那样,它是否会使代码更好/更快/更安全SomeVar2

感谢您的建议。

4

4 回答 4

3

它不会影响输出,因为 MSIL 是相同的。

如果您没有任何将类变量与局部变量不同的变量命名约定,我“可能”会更安全。

于 2012-07-21T16:04:15.413 回答
2

使用“这个”。不会改变代码的生成方式。因此,性能和安全性不受影响。无论您是否包括“这个”。当你不需要时,这是一个风格问题。一些风格指南建议使用“this”。总是在会员上。

于 2012-07-21T16:04:16.393 回答
2

您可能需要添加“this”的一些示例是当您在同一范围内有一个局部范围变量(Resharper 或 VS,我忘记了,应该通知您)时,例如:

string name;
void SetName(string name)
{
     this.name = name;
}

或者,如果您出于某种原因从另一个派生构造函数:

public void Person(string Name, int age) : this(age)
{
}
public void Person(int age)
{
}

否则,它不会对编译产生任何影响,但我仍然偶尔会使用它来明确区分字段和参数,因为它们可能会令人困惑等。

于 2012-07-21T16:11:36.453 回答
0

在编译时没有区别。正如上面很少有人建议的那样,它使您的代码更具可读性,但我认为这只是访问类变量的另一种方式。

于 2012-07-23T04:05:28.713 回答