十七:静态类

     静态类就是不需要进行实例化的类,定义类时用static修饰,例如Console,Math,Environment等,静态类只能有静态成员。注意,结构(值类型)不能用static来修饰,因为CLR要求值类型是必须实例化的。

静态类有以下特征:

(1)必须直接从基类System.Object派生,因为从其它基类派生的类由于继承性仅适用于对象而没有任何意义,而且不能创建静态类的实例

(2)不能实现任何接口,因为只有使用类的实例才能去调用类的接口方法,而静态类不能被实例化

(3)静态类只能定义静态成员(字段、方法、属性、事件)

(4)静态类不能被用作字段、方法参数或局部变量,因为这些用法都将表明变量引用了实例

以下是一个定义的静态类:

using System;

public static class AStaticClass

{

    public static void AStaticMethod(){}

    private static String s_AStaticField;

    public static String AStaticProperty

    {

        get { return s_AStaticField; }

        set { s_AStaticField = value; }

    }

    public static event EventHandler AStaticEvent;

}

     查看生成的IL代码,注意到C#编译器将该类标记为abstract和sealed,而且没有相应的实例构造器,即IL中没有.ctor的方法。

 
 
 
 
 

 

 

转载于:https://www.cnblogs.com/chenzehe/archive/2009/01/29/1381371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值