首页 > Asp.net开发 > C#的静态构造函数

C#的静态构造函数

“静态构造函数”典型应用于第一次使用类时的初始化工作,注意“第一次”,意思是它只执行一次。

有同学说了,类的初始化不是有构造函数嘛?我们回答:构造函数是每个实例被声明时都会执行的,它属于每一个实例,而静态构造函数却属于这个类本身。

比如,现在各大学校马上开学了,这有个学号问题,学校规定:2013年入学的学生的学号统一编为“13xxxx”。那么这个初始值13xxxx就是这个学生这个类群共有的一个牲,而并不是属于某一个学生;而学号、姓名等都是某个学生独有的属性。

根据静态构造函数只执行一次的特征,学校学生管理系统在某个配置文件里写了“130001”这个数字,学校管理系统一运行立马读取了这个数字,管理系统一看,噢,让我从130001开始编学号啊!

代码编写时,我们先来建一个学生类

 

[csharp][/csharp] view plaincopy

  1. class Student
  2.     {
  3.         //先建立这个类所有的一个属性:起始学号
  4.         private static int _startNumber;
  5.         //静态构造函数用于读取配置文件或数据库中所设的起始数字。
  6.         static Student()
  7.         {
  8.             _startNumber = 130001;      //假设这里我们是从配置文件中读取的130001
  9.         }
  10.         //学号字段
  11.         private int _code;
  12.         //学号属性
  13.         public int Code
  14.         {
  15.             get { return _code; }
  16.             set { _code = value; }
  17.         }
  18.         //每次实例对象的时候学号自增1
  19.         public Student()
  20.         {
  21.             this._code=(_startNumber++);
  22.         }

我们实例两个学生试试:

 

 

[csharp][/csharp] view plaincopy

  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             Student s1 = new Student();
  6.             Console.WriteLine(s1.Code);
  7.             Student s2 = new Student();
  8.             Console.WriteLine(s2.Code);
  9.         }
  10.     }

结果:

 

130001

130002


本文固定链接: http://www.devba.com/index.php/archives/2534.html | 开发吧

报歉!评论已关闭.