.NET学习之静态类

来源:互联网 发布:2016天猫淘宝各数据 编辑:程序博客网 时间:2024/05/01 15:10
1、静态类
   1)仅包含静态成员。
   2)不能被实例化。
   3)是密封的,不可被继承

   4)不能包含实例构造函数

   5)调用前初始化(构造函数),只初始化一次

2、静态成员
    1)如果创建了该类的任何实例,不能使用实例来访问静态成员。

    2)静态方法和属性只能访问静态字段和静态事件。

    3)静态成员通常用于表示不会随对象状态而变化的数据或计算。

    4)静态方法可以被重载但不能被重写,因为它们属于类,不属于类的任何实例,静态成员只被创建一次,所以静态成员只有一份。类加载的时候,所有的静态成员就会被创建在“静态存储区”里面,一旦创建直到程序退出,才会被回收。

    5)C# 不支持静态局部变量(在方法范围内声明的变量)。

    6)静态字段有两个常见的用法:一是记录已实例化对象的个数,二是存储必须在所有实例之间共享的值。

    7)一个类只能有一个静态构造函数,该构造函数不能有访问修饰符,不能带任何参数,不能被直接调用,只能在:
         (a) 创建包含静态构造函数的类实例时
         (b) 访问包含静态构造函数的静态成员时会先调用静态构造函数,无论创建了多少个类实例,其静态构造函数都只调用了一次。
    

class Program {    public static int i =0;       public Program()      {         i = 1;         Console.Write("实例构造方法被调用");     }      static Program()     {         i = 2;         Console.Write("静态构造函数被执行");    }    static void Main(string[] args)   {        Console.Write(Program.i); //结果为2,首先,类被加载,所有的静态成员被创建在静态存储区,i=0,接着调用了类的成员,这时候静态构造函数就会被调用,        i=2;             Program p = new Program();           Console.Write(Program.i);//结果为1,实力化后,调用了实例构造函数,i=1,因为静态构造函数只执行一次,所以不会再执行。     } }
    8)this/base 关键字在静态方法中不能使用,因为有可能对象还不存在。

    9)静态成员变量只被初始化一次,第二次保持着第一次改变后的值。



0 0
原创粉丝点击