0
讓我們來看看這個代碼片斷:只有在所有者類中才能通過屬性訪問成員?
class A {
int m_x;
public int x {
get { return m_x; }
set { ... }
}
}
m_x
是私有因此它在A級訪問,但其他類只能通過公共x
屬性來訪問它。
我有方法,其中必須每次x被改變。 (這是在set { ... }
)
我的問題是,在A類我可以直接改變m_x
值。
- 這樣,「必須被稱爲」方法不會被調用。
當前這個錯誤的唯一指標是m_
前綴。
有沒有辦法編譯時檢查?
但是,如果是一個私人領域,它可以改變只能通過*你的*代碼,你可以控制,對吧? –
是的,但存在人爲錯誤因素。如果在我疲憊的時刻之一,我會寫m_x而不是x,我將不得不尋找幾個小時的錯誤來源。 – Tudvari