十七:静态类

     静态类就是不需要进行实例化的类,定义类时用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的方法。

 
 
 
 
 

 

 

posted @ 2009-01-29 22:50  Done  阅读(1121)  评论(0编辑  收藏  举报