4

可能重复:
在包含的类中,使用属性还是字段?

看看下面的属性:

private string _name;
public string Name 
{  
    get
    {
        return _name;
    }
    set 
    {
        _name = value 
    }
}

假设我需要访问 name 属性,并且我在声明此属性的同一类中的方法中,我应该使用 this.Name 还是 this._name?使用公共成员是更好的做法还是至少更清洁?

4

2 回答 2

4

您可以使用自动属性简化此代码:

public string Name { get; set; }

现在您可以Name在方法中使用该属性。

当您的 getter/setter 中有一些更复杂的逻辑时,将使用支持字段。然后根据您是否需要访问该字段或通过 getter/setter 中的逻辑,您将使用该字段或属性。

于 2013-01-27T14:55:03.033 回答
1

我认为最好的例子就是这个。如果您使用 DataBindings 属性,通常看起来像这样:

public string Name
{
    get { return _name; }
    set
    {
        _name = value;
        OnPropertyChanged("Name");
    }
}

所以,如果你只是想在这个类中获取名称,那么使用它就像this.Name或一样都没有关系this._name

但另一方面,如果你想设置它,这真的取决于你是否想更新 UI。

我的个人惯例是,只要有可能,我就会使用私有后备字段。

在您的情况下,如果 getter 和 setter 中实际上没有更多逻辑 - 自动属性就足够了。

于 2013-01-27T15:54:00.637 回答