我試圖執行下面的代碼派生類不能在C#顯示基類變量的值
class A
{
protected int a;
protected char b;
public void Show()
{
a=5;
MessageBox.Show(""+a);
}
}
class B:A
{
public void Show()
{
b='z';
MessageBox.Show(""+a+ ""+b);
}
}
我正在5
(的a
值)當我做aa.show()
輸出其中aa
是實例的A
但是當我做bb.show()
,其中bb
是B
的情況下,輸出出來爲0
(的a
值)z
(的b
值)。
有人可以解釋爲什麼派生類無法顯示當前的值,即使它已被聲明爲受保護的,而它能夠顯示正確的值b
?
更新:
我會盡力的解決方案建議。關於編譯錯誤,沒有,我能夠得到問題中提到的輸出。
你想,一個是== 5與否? 這個問題並不完全正確:*爲什麼派生類無法顯示a *的當前值?派生類**能夠顯示一個值,但是這個**值從未在B類的默認值0中改變**。 – serhio