C# 这个.PropertyName和_PropertyName有什么区别?

C# 这个.PropertyName和_PropertyName有什么区别?,c#,class,linq-to-sql,this,partial,C#,Class,Linq To Sql,This,Partial,由于我经常让LinqToSql生成部分实体类,我想知道我通过代码添加额外属性的做法是否正确,以及是否有更好的方法来做同样的事情?我还想知道使用this.PROPERTY\u NAME访问其他属性的值与\u PROPERTY\u NAME有什么区别? 在我的web应用程序中,我一直在使用this.PROPERTY\u NAME,但我想知道这是否是我应该使用的正确方法,正如我在开头的句子中所说的那样。另外,什么是\u PROPERTY\u NAME以及何时使用它 例如: public partial

由于我经常让
LinqToSql
生成部分实体类,我想知道我通过代码添加额外属性的做法是否正确,以及是否有更好的方法来做同样的事情?我还想知道使用
this.PROPERTY\u NAME
访问其他属性的值与
\u PROPERTY\u NAME
有什么区别? 在我的web应用程序中,我一直在使用
this.PROPERTY\u NAME
,但我想知道这是否是我应该使用的正确方法,正如我在开头的句子中所说的那样。另外,什么是
\u PROPERTY\u 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?
        }  
    }
}

一个是属性,另一个是私有支持字段,该属性在其中存储其值。如果您想执行该属性在其getter/setter中包含的任何代码,那么就使用该属性,如果您不想执行,就不要执行。很可能您希望使用属性,而不是字段,尤其是在设置时(设置它会触发属性更改事件,因此只有在不希望引发该事件的情况下才可以使用属性)。

一个是属性,另一个是该属性存储其值的私有备份字段。如果您想执行该属性在其getter/setter中包含的任何代码,那么就使用该属性,如果您不想执行,就不要执行。您可能希望使用属性,而不是字段,尤其是在设置时(设置它会触发属性更改事件,因此只有在不希望引发该事件的情况下才可以使用属性)。

下划线是避免写入“this”的一种方法。简而言之,这是一个实体值。@GilbertLeBlanc下划线只是标识名称中有效的另一个字符。这只是一种惯例,它被用作前缀来表示私有实例字段。下划线是避免写“this”的一种方法。简而言之,这是一个实体值。@GilbertLeBlanc下划线只是标识名称中有效的另一个字符。这只是一个惯例,它被用作表示私有实例字段的前缀。感谢您提供了合适的术语。找到了有关MSDN的更多信息。感谢您提供正确的术语。找到有关使用此的MSDN的更多信息。