C#2.0中的静态类static class [C#]

C# 2.0 提供了静态类,在1.x中我们要实现静态类需要使用下面的代码。

1.0

public   sealed   class  Class1
{
  
private Class1(){}
}

在C# 2.0中我们可以使用static class来更加优雅地解决这个问题。

public   static   class  Class1
{
}

我们反编译一下,会了解其实现机制。

. class   public   abstract  auto ansi  sealed  beforefieldinit Program
 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访问保护修饰符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值