1.0
public
sealed
class
Class1
{
private Class1(){}
}
{
private Class1(){}
}
在C# 2.0中我们可以使用static class来更加优雅地解决这个问题。
public
static
class
Class1
{
}
{
}
我们反编译一下,会了解其实现机制。
.
class
public
abstract
auto ansi
sealed
beforefieldinit Program
extends object
{
}
extends object
{
}
原来编译器将该类声明为 abstract sealed,自然不能被继承被实例化了。
但是C#编译器并不允许我们在代码中直接声明一个abstract sealed类型,下面的代码无法通过编译。
public
abstract
sealed
class
Class1
{
}
{
}
静态类的限制
1. 静态类不能有实例构造器。
2. 静态类不能有任何实例成员。
3. 静态类上不能使用abstract和sealed修饰符。
4. 静态类默认继承自System.Object,不能显式指定任何其他基类。
5. 静态类不能指定任何接口实现。
6. 静态类的成员不能有protected或者protected internal访问保护修饰符。