public class ClassA
{
public static readonly string processName;
}
public class ClassB : ClassA
{
static ClassB()
{
processName = "MyProcess.exe";
}
}
編譯上述C#代碼時出現錯誤。指定爲基類的靜態只讀字段
錯誤說 - 「靜態只讀域不能被分配到(除靜態構造函數或變量初始值)」
但我在靜態構造函數分配它。
對這樣一個靜態變量的需求是,基類具有使用此變量的方法,但派生類和基類對於此變量必須具有不同的值。但是,在各個班級的所有實例中,價值都是不變的。它必須是隻讀的,因爲它不能在任何地方改變。
上述代碼中的錯誤是什麼? (如果有的話)我似乎無法找到一個。錯誤消息不起作用。因爲我沒有按照它做任何錯誤。
如果出現錯誤,我該如何實現此功能?我知道一個簡單的解決方法是將其設爲實例變量並在派生類中爲它們分配不同的值。但這是不必要的,因爲在各個班級的所有實例中價值都是不變的。
正是! 「類型上的多態性」。我不認爲這可能是更恰當的措詞。感謝您指出它在.NET中不受支持。 – Poulo