程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#的靜態構造函數

C#的靜態構造函數

編輯:C#入門知識

  “靜態構造函數”典型應用於第一次使用類時的初始化工作,注意“第一次”,意思是它只執行一次。         有同學說了,類的初始化不是有構造函數嘛?我們回答:構造函數是每個實例被聲明時都會執行的,它屬於每一個實例,而靜態構造函數卻屬於這個類本身。         比如,現在各大學校馬上開學了,這有個學號問題,學校規定:2013年入學的學生的學號統一編為“13xxxx”。那麼這個初始值13xxxx就是這個學生這個類群共有的一個牲,而並不是屬於某一個學生;而學號、姓名等都是某個學生獨有的屬性。         根據靜態構造函數只執行一次的特征,學校學生管理系統在某個配置文件裡寫了“130001”這個數字,學校管理系統一運行立馬讀取了這個數字,管理系統一看,噢,讓我從130001開始編學號啊!         代碼編寫時,我們先來建一個學生類  

class Student  
    {  
        //先建立這個類所有的一個屬性:起始學號  
        private static int _startNumber;  
        //靜態構造函數用於讀取配置文件或數據庫中所設的起始數字。  
        static Student()  
        {  
            _startNumber = 130001;      //假設這裡我們是從配置文件中讀取的130001  
        }  
  
        //學號字段  
        private int _code;  
        //學號屬性  
        public int Code  
        {  
            get { return _code; }  
            set { _code = value; }  
        }  
  
        //每次實例對象的時候學號自增1  
        public Student()  
        {   
            this._code=(_startNumber++);  
        }  

 

    我們實例兩個學生試試:  
class Program  
    {  
        static void Main(string[] args)  
        {  
            Student s1 = new Student();  
            Console.WriteLine(s1.Code);  
  
            Student s2 = new Student();  
            Console.WriteLine(s2.Code);  
        }  
    }  

 

  結果: 130001 130002           

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved