我不知道这个问题是否有意义,或者这是一个天真的问题,但我还没有找到一个满意的答案。
我希望能够跨多个静态类共享代码。是否有#34;等同于"静态类的抽象基类(即我可以从另一个静态类继承)吗?如果没有,为什么不呢?是否有另一种在多个静态类之间共享代码的方式,其方式类似于对抽象基类的处理方式?
另外,静态类与"密封"相比如何?类?
答案 0 :(得分:2)
你说得对。反思将显示static
类同时为abstract
和sealed
:
public static class MyStaticTest {
}
...
// I'm abstract
Console.WriteLine(typeof(MyStaticTest).IsAbstract ? "I'm abstract" : "");
这就是为什么你不能创建一个实例(编译时错误):new MyStaticTest();
。但是,反射会显示任何static
类也是sealed
:
// I'm sealed
Console.WriteLine(typeof(MyStaticTest).IsSealed ? "I'm sealed" : "");
所以你不能继承它(编译时错误):public class MyClass: MyStaticTest {..}
。因此,使用static
类所能做的就是声明static
成员(静态字段,属性,方法等)。
答案 1 :(得分:0)
abstract关键字允许创建不完整的类和类成员,并且必须在派生类中实现,而sealed关键字使您能够阻止继承先前标记为虚拟的类或某些类成员。
我认为它完全适用于