只有在所有者类中才能通过财产访问会员?

时间:2017-02-19 20:19:14

标签: c# properties visibility member

让我们看一下这段代码:

class A {
    int m_x;
    public int x {
        get { return m_x; }
        set { ... }
    }
}

m_x是私有的,因此可以在A类中访问,但其他类只能通过公共x属性访问它。

每次更改x时,我都会调用 MUST 的方法。 (它在set { ... }

我的问题是,在 A类中,我可以直接更改m_x的值。

  • 这样就必须调用' 方法。

目前,此错误的唯一指标是m_前缀。

有没有办法进行编译时检查?

1 个答案:

答案 0 :(得分:2)

  

有没有办法进行编译时检查?

不,类A应该知道每次设置私有字段时都必须调用该方法。这是该类实际实现的内部逻辑的一部分。

编译器无法阻止您在不先调用方法的情况下设置私有字段。这将是该类开发人员的责任,而不是编译器。