因為這個構造函式是屬於類的,而不屬於任何一個實例,所以這個構造函式只會被執行一次,而且是在創建此類的第一個實例或引用任何靜態成員之前,由.NET自動調用。
在程式中我們可以這樣寫:
class SimpleClass
{
static public Object object;
// Static constructor
static SimpleClass()
{
// Initialize static parameter
somthing
}
}
也可以這樣寫,這和上面的做法其實沒有區別:
class SimpleClass
{
static public Object object = new Object();
}
在使用靜態構造函式的時候應該注意幾點:
1、靜態構造函式既沒有訪問修飾符,也沒有參數。
--因為是.NET調用的,所以像public和private等修飾符就沒有意義了。
2、在創建第一個類實例或任何靜態成員被引用時,.NET將自動調用靜態構造函式來初始化類。
--也就是說我們無法直接調用靜態構造函式,也不可能知道靜態構造函式何時會被調用。
3、一個類只能有一個靜態構造函式。
4、無參數的構造函式可以與靜態構造函式共存。
--儘管參數列表相同,但一個屬於類,一個屬於實例,所以不會衝突。
5、最多只運行一次。
6、靜態構造函式不可以被繼承。
7、如果沒有寫靜態構造函式,而類中包含帶有初始值設定的靜態成員,那么編譯器會自動生成默認的靜態構造函式。
調用例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test1_constrator
{
class Program
{
static void Main(string[] ARGs)
{
Class1 o1 = new Class1();
Class1 o2 = new Class1();
}
}
class Class1
{
private static int count = 0;
static Class1(){
count++;
System.Console.Write("Static" + count.ToString());
}
public Class1()
{
count++;
System.Console.Write("Public" + count.ToString());
}
}
}
相關詞條
-
構造函式
構造函式 ,是一種特殊的方法。主要用來在創建對象時初始化對象, 即為對象成員變數賦初始值,總與new運算符一起使用在創建對象的語句中。特別的一個類可以有...
主要特點 套用 其他特點 語法 記憶體機制 -
C#
C#(讀做C sharp)是微軟公司發布的一種面向對象的於.NETFramework之上的高級程式設計語言,並定於在微軟職業開發者論壇(PDC)上登台亮...
基本概述 歷史發展 正式發布 訪問計算 程式的執行 -
構造器
構造器是Java和C#學習中很重要的一個概念,構造器可以提供許多特殊的方法,構造器作為一種方法,負責類中成員變數(域)的初始化。實例構造器分為預設構造器...
分類 作用 用法 繼承方式 -
C#入門經典
《C#入門經典》是2006年清華大學出版社出版的圖書,作者karli Watson (美國)、Christian Nagel(美國),由齊立波翻譯。本書...
第3版 第4版 -
靜態成員變數
靜態成員變數:在C++中(以及其他一些語言,如 C#,Java 等面向對象的語言中)類的成員變數被聲明為static(稱為靜態成員變數),意味著它為該類...
基本介紹 關鍵字 面向對象 -
精通C#(第6版)
CTS121.5.1 CTS類類型121.5.2 CTS接口類型121.5.3
內容介紹 作者介紹 作品目錄 -
C#圖解教程
《C#圖解教程》以圖文並茂的形式,用樸實簡潔的文字,並輔之以大量表格和代碼示例,精煉而全面地闡述了最新版C#語言的各種特性,使讀者能夠快速理解、學習和使...
作者簡介 編輯推薦 目錄 -
C#高級編程
dows應用程式和Win Studio的Win dation
C#高級編程 內容簡介 作者簡介 媒體推薦 編輯推薦 -
c#基礎教程
0101C#的歷史 0202C#的語法 0903C#中的委託
c#基礎教程簡介 c#基礎教程目錄