CLR via C# 静态类

有一些永远不需要实例化的类,例如Console,Math,Environment和ThreadPool。这些类只有static成员。事实上,这种类唯一的作用就是组合一组相关的成员。例如,Math类就定义了一组执行数学运算的方法。在C#中,要用static关键字定义不可实例化的类。该关键字只能应用于类,不能应用于结构(值类型)。因为CLR总是允许值类型实例化,这是没办法阻止的。

//--

C#编译器对静态类进行了如下限制:

1.静态类必须直接从基类System.Object派生,从其他任何基类派生都没有意义。继承只适用于对象,而你不能创建静态类的实例。

2.静态类不能实现任何接口;这是因为只有使用类的实例时,才可调用类的接口方法。

3.静态类只能定义静态成员(字段、方法、属性和事件),任何实例成员都会导致编译器报错。

4.静态类不能作为字段、方法参数或局部变量使用,因为它们都代表引用了实例的变量,而这是不允许的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值