自动属性中私有setter的替代方法

时间:2013-01-11 03:03:51

标签: c# .net oop

如果您不应该使用私有设置器进行自动属性(不良练习),那么如何从课堂内私下设置它并仍然只是向公众公开? (假设我想在构造函数级别设置它但仍然允许它通过get公开)?

示例类:

public class Car
{
    //set the property via constructor
    public SomeClass(LicensePlate license)
    {
         License = license
    }

    public LicensePlate License{get; private set;} // bad practice
}

1 个答案:

答案 0 :(得分:4)

您将该属性转换为具有支持字段且不具有setter的属性。

public class Car
{
    LicensePlate _license;

    public Car(LicensePlate license)
    {
        _license = license;
    }

    public LicensePlate License
    {
        get { return _license; }
    }
}