inherit a static class
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How can a static class derive from an object?
我有一个静态类,我想从另一个静态类继承,但是编译器禁止这样做。"静态类必须从对象派生"
我想知道为什么,是否有任何解决方法?
静态意味着共享,并且不可继承。 您无法做到这一点。
不能从静态类继承,它们是密封的,并且静态方法不能是虚拟的。
我认为您需要重新考虑设计,可以考虑使用单例模式而不是静态类,这样您就可以毫无问题地进行继承。
或仅使用静态成员将两个类连接在一起:
静态A级
{
静态B b;
}
您将无法通过继承来完成此操作。 尝试使用复合图案。
在其中,您具有实现和接口的多个对象,这些对象将由将其作为成员的静态类"组成"。 好处是您可以随后将行为添加到实现您的接口的每个新类中,并且这些行为在运行时可以互换。
编辑:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class Foo { protected static class StaticClass { public static int Count { get; set; } } public virtual string GetBars() { return"I am Foo:" + StaticClass.Count++; } } public class FooToo:Foo { public override string GetBars() { return"I am Foo Too:" + StaticClass.Count++; } } |
然后...
1 2 3 4 5 |