c# - 通过调用关联的属性而不是数据成员本身来从 ctor 中初始化私有(private)数据成员是一种好习惯吗?

标签 c# properties

interface IAnimal
{
    string Name { get; set; }
}

class Dog : IAnimal
{
    private string name;
    public Dog(string name)
    {
        Name = name;
    }

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

最佳答案

一般来说,除非有特殊原因,否则最好尽可能遍历属性 getter 和 setter。如果属性 setter 在特定情况下有副作用(如触发通知),您可以直接从对象内分配给支持字段,但尽量避免陷入那种情况。

使用属性 getter 和 setter 很好的原因,即使在实现类本身中也是如此:当/如果您将来需要更改 getter/setter 的实现,例如添加所需的副作用,您的代码将已经能够很好地尊重新的 getter/setter 语义。

关于c# - 通过调用关联的属性而不是数据成员本身来从 ctor 中初始化私有(private)数据成员是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2634375/

相关文章:

c# - webApi2 Odata v3 和 V4 并排

c# - Entity Framework 查询一个逗号分隔的字段

css - Angular2 获取 css 属性

c# - 如何创建 FIFO/强信号量

c# - DirectoryServices.Protocols.SearchRequest 返回 GUID 的多个结果

ios - 更新已保存的 Codable 结构以添加新属性

objective-c - 你怎么知道一个 NSObject 是否有某个属性?

GWT:在服务器端获取常量

c# - .NET 中的自定义 SNMP 陷阱实现

python - 常量实例变量?