让我们看一下这段代码:
class A {
int m_x;
public int x {
get { return m_x; }
set { ... }
}
}
m_x
是私有的,因此可以在A类中访问,但其他类只能通过公共x
属性访问它。
每次更改x时,我都会调用 MUST 的方法。 (它在set { ... }
)
我的问题是,在 A类中,我可以直接更改m_x
的值。
目前,此错误的唯一指标是m_
前缀。
有没有办法进行编译时检查?
答案 0 :(得分:2)
有没有办法进行编译时检查?
不,类A
应该知道每次设置私有字段时都必须调用该方法。这是该类实际实现的内部逻辑的一部分。
编译器无法阻止您在不先调用方法的情况下设置私有字段。这将是该类开发人员的责任,而不是编译器。