Давайте посмотрим этот фрагмент кода:Сделать доступным членом только через собственность даже в классе владельца?
class A {
int m_x;
public int x {
get { return m_x; }
set { ... }
}
}
m_x
является частным, так он доступен в классе А, но другие классы могут получить доступ к нему только через публичную x
собственности.
У меня есть методы, которые ДОЛЖНЫ быть вызваны каждый раз, когда x изменяется. (Это в set { ... }
)
Моя проблема заключается в том, что в класса А я могу изменить значение m_x
непосредственно.
- Этим путем «должен быть вызван» методы не называются.
В настоящее время единственным индикатором этой ошибки является m_
префикс.
Есть ли способ сделать проверку времени компиляции?
Но если это личное поле, его можно изменить только * вашим * кодом, которым вы можете управлять, не так ли? –
Да, но есть человеческий фактор ошибки. Если в один из моих усталых моментов я пишу m_x вместо x, мне придется искать источник ошибки в течение нескольких часов. – Tudvari