在访问方法中的属性时使用私有或公共属性成员?

时间:2013-01-27 14:53:29

标签: c# design-patterns properties

  

可能重复:
  Within the Containing Class, Use Property or Field?

查看以下属性:

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

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

2 个答案:

答案 0 :(得分:4)

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

public string Name { get; set; }

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

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

答案 1 :(得分:1)

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

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

因此,如果您只是想在此课程中获取该名称,则无论您使用this.Name还是this._name都无关紧要。

另一方面,如果你想设置它,那真的取决于你是否要更新用户界面。

我个人的惯例是,只要有可能,我就会使用私人支持。

在你的情况下,如果getter和setter中没有任何逻辑 - 一个auto属性就足够了。

相关问题