我有一个类似于这样的对象:
public class SomeObject
{
int SomeInt { get; set; }
public void SomeMethod()
{
var SomeVar = this.SomeInt;
var SomeVar2 = SomeInt;
}
}
当我在类方法中引用类属性时,如果我写this.SomeInt
而不是SomeInt
,那么它会使代码更好/更快/更安全吗,就像我分配{{}时一样1}}?
感谢您的建议。
答案 0 :(得分:3)
它不会影响输出,因为MSIL是相同的。
如果您没有任何类变量与局部变量不同的变量命名约定,我“可能”会更安全。
答案 1 :(得分:2)
使用“this”。不会改变代码的生成方式。因此,性能和安全性不受影响。你是否包括“这个”。当你不需要时,是一种风格问题。一些风格指南建议使用“this”。总是在会员身上。
答案 2 :(得分: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)
{
}
否则,它对编译没有任何影响,但我仍偶尔使用它来明确区分字段和参数,当它们可能混淆等等时。
答案 3 :(得分:0)
在编译时没有任何区别。上面提到的很少,它使您的代码更具可读性,但我认为这只是访问类变量的另一种方式。