最近学了c#,所以在学写属性的时候,被教成这样:
public string Name { get; set; }
汽车属性很棒!但现在我正在尝试做一些更复杂的事情,所以我需要编写一对自定义访问器。
private string _Name;
public string Name {
get { return _Name; }
set { _Name = value }
}
我知道编译器在使用 autos 时会在其阴暗的深处创建一个私有(private)实例变量,但我被宠坏了,不想让那个私有(private)变量看起来毫无意义。
有没有办法在没有私有(private)变量的情况下使用自定义访问器?
最佳答案
属性根本不需要支持变量(字段)。虽然它们可用于封装简单字段,但您也可以使用它们来访问其他数据。
public Decimal GrandTotal { get { return FreightTotal + TaxTotal + LineTotal; } }
或
public string SomeStatus { get { return SomeMethodCall(); } }
如果目标是简单地用属性封装一些字段,如果您不使用自动属性,则需要某种支持字段。
关于没有私有(private)变量的 C# 自定义 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577591/