你说得很对。反射将表明一个static类同时是abstract和sealed:
public static class MyStaticTest {
}
...
// I'm abstract
Console.WriteLine(typeof(MyStaticTest).IsAbstract ? "I'm abstract" : "");
Run Code Online (Sandbox Code Playgroud)
这就是为什么您无法创建实例(编译时错误)new MyStaticTest();:。然而,反思将表明任何static类也是sealed如此:
// I'm sealed
Console.WriteLine(typeof(MyStaticTest).IsSealed ? "I'm sealed" : "");
Run Code Online (Sandbox Code Playgroud)
所以你不能继承它(编译时错误):public class MyClass: MyStaticTest {..}。因此,您对类所能做的static就是声明static成员(静态字段、属性、方法等)。