我對C#.NET還是比較陌生,所以我確信有一些明顯的東西我錯過了,但是這裏是:我無法從某個特定的類中獲取某些變量。獲取繼承變量
有問題的類看起來是這樣的:
class AridPlanet : Arid
{
public const int area = 95;
}
正如你可以看到這個類從下面的類繼承:
abstract class Arid : Astro
{
public const int metal = 2;
public const int gas = 2;
public const int crystals = 0;
public const int fertility = 5;
}
這反過來又從下面的類繼承:
abstract class Astro
{
public int metal;
public int gas;
public int crystals;
public int fertility;
public int area;
}
我試圖獲得以下變量:
class Base
{
private int metal;
private int gas;
private int crystals;
private int fertility;
private int area;
private List<Structure> structures = new List<Structure>();
private int position;
private Astro selectedAstro;
public Base(Astro astro, int position)
{
this.selectedAstro = astro;
this.metal = selectedAstro.metal;
this.gas = selectedAstro.gas;
this.crystals = selectedAstro.crystals;
this.fertility = selectedAstro.fertility;
this.area = selectedAstro.area;
this.position = position;
//Code ommited
}
}
的astro
參數被傳遞給Base
構造爲特定天文類型,例如AridMoon
。
當我運行的代碼,看看有什麼Base
變量被分配到我看到他們都分配爲0。對我來說,這表明該代碼試圖從AridPlanet
最頂端的超分配變量,是Astro
。
但是,正如我理解繼承,編譯器應該看看前面指出的類,然後再轉到超類。
有什麼想法會出錯?我相信這很簡單,我誤解了。
常量不是變量(或領域 - 這將是正確的術語)。 – Lucero 2012-08-15 01:15:05
你可能想看看你的編譯器警告...... – 2012-08-15 01:19:28
當然,它們不會改變,所以常量是有意義的,或者可能是'readonly'我不完全確定它們的區別。無論哪種情況,我都無法獲取值並分配它們。 – Arcadian 2012-08-15 01:19:59