this.PropertyName和_PropertyName有什么区别?

时间:2013-01-22 19:58:19

标签: c# class linq-to-sql this partial

因为我经常让LinqToSql生成部分实体类,我想知道我通过代码添加其他属性的做法是否正确以及是否有更好的方法来做同样的事情?我也想知道使用this.PROPERTY_NAME vs _PROPERTY_NAME访问其他属性的值有什么区别? 在我的网络应用程序中,我一直使用this.PROPERTY_NAME,但我想知道是否,正如我在开头句中已经说过的那样,我应该使用正确的方法。另外,什么是_PROPERTY_NAME以及我们何时使用它?

示例:

public partial class User
{
    public bool IsThisProper {
        get{
            return this.SomeIntProperty == 10; // I usually use this
        }  
    }

    public bool WhenToUseThisApproach {
        get{
            return _SomeIntProperty == 10; // What is this in comparison to above?
        }  
    }
}

1 个答案:

答案 0 :(得分:3)

一个是属性,另一个是私有支持字段,该属性存储它的值。如果你想执行属性在其getter / setter中的任何代码,那么使用该属性,如果不这样做,则不要。你有可能想要使用属性,而不是字段,尤其是设置(设置它会触发属性更改事件,所以关于使用该属性的唯一时间是你不希望引发该事件)。