没有私有(private)变量的 C# 自定义 getter/setter

标签 c# coding-style accessor automatic-properties

最近学了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/

相关文章:

linux - posix 标志的命名约定

objective-c - Objective-C 中的访问器调用

c# - C#错误中数组元素的访问器

c# - C# 是否适合集群计算密集型应用程序?

C#:将设置导入/导出文件

oop - 在方法中对参数进行排序有哪些约定?

coding-style - 哪一个更好 ?事件还是直接引用?

laravel - 解密模型值的访问器不起作用

c# - 使用菜单项而不是导航 url 添加按钮单击事件

c# - 是否可以读取实习生池中的所有字符串?