我知道,理論上,你不能(也不應該)在C#中派生靜態類,但我有一種情況,我認爲我需要它...我想定義一個數字A類的靜態常量,正如我很快就發現,你不能這樣做,所以我跟着這個教程:http://msdn.microsoft.com/en-us/library/bb397677.aspx在C#中導出一個靜態類#
所以,我有一個靜態類是這樣的:
public static class ClassAConstants
{
public const string ConstantA = "constant_a";
public const string ConstantB = "constant_b";
}
然後,我具有擴展類A並添加一些新的靜態常量的類B。我想這樣做是這樣的:
public static class ClassBConstants : ClassAConstants
{
public const string ConstantC = "constant_c";
public const string ConstantD = "constant_d";
}
這樣,四個常數將與ClassBConstants.ConstantA或ClassBConstants.ConstantD訪問。但是,C#不會讓我這樣做。
我該如何做到這一點?也許解決方案是完全不同的,我不在乎它是否根本不使用靜態常量,只要結果是我想要的。
編輯:
感謝去啦我發現常數是隱式靜態的,所以我真的沒有需要創建一個人工靜態類(ClassAConstants和ClassBConstants)。解決方案不能簡單:
public class A
{
public const string ConstantA = "constant_a";
public const string ConstantB = "constant_b";
// ...
}
public class B : A
{
public const string ConstantC = "constant_c";
public const string ConstantD= "constant_d";
// ...
}
通過該代碼,我得到了最初想要的結果。
單身模式可以幫助你,如果你真的需要你有一個常規類的靜態實例 – Guillaume86 2011-03-12 13:31:34
ClassBConstants IS-A ClassBConstants? – 2011-03-12 13:31:54