让我们看一下这段代码:
class A {
int m_x;
public int x {
get { return m_x; }
set { ... }
}
}
m_x
是私有(private)的,因此可以在 A 类中访问,但其他类只能通过 public x
访问它属性。
我有一些方法,每次 x 更改时都必须调用这些方法。 (位于 set { ... }
)
我的问题是,在A类中,我可以更改 m_x
的值直接地。
- 这样,就不会调用“必须调用”方法。
目前此错误的唯一指示是 m_
前缀。
有没有办法进行编译时检查?
最佳答案
Is there a way to make a compile-time checking?
不,类 A
应该知道每次设置私有(private)字段时它都必须调用该方法。这是该类实际实现的内部逻辑的一部分。
编译器无法阻止您在不先调用方法的情况下设置私有(private)字段。这将是类开发人员的责任,而不是编译器的责任。
关于c# - 即使在所有者类别中,也使成员只能通过属性访问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42332397/