C 靜態構造函式呼叫機制

2022-02-16 11:27:47 字數 1885 閱讀 6913

若乙個類中有靜態建構函式,在首次例項化該類或任何的靜態成員被引用時,.net自動呼叫靜態建構函式來初始化該類。注意是「首次」,即繼續例項化該類時,不會呼叫該類的靜態建構函式。

1、例項化時呼叫靜態建構函式

///

/// 靜態建構函式

///

/// main主函式在類staticconstructortest之中:

///

/// 1.程式被載入時,首先初始化了【靜態字段】和【靜態構造器】

/// 呼叫靜態欄位_count;

/// 呼叫靜態建構函式 static staticconstructortest();

/// 呼叫main下的obj1**;

///

///

class staticconstructortest

", _count));

}staticconstructortest()

", _count));

}static void main(string args)

}2、引用靜態成員時呼叫建構函式

///

///

/// 靜態建構函式:引用靜態成員時呼叫建構函式

///

///

/// main主函式在類staticconstructortest之中:

///

/// 1.在進入main主函式之前,首先初始化了【靜態字段】和【靜態構造器】

/// 呼叫靜態欄位_count;

/// 呼叫靜態建構函式 static staticconstructortest();

///

///

///

class staticconstructortest

", _count));

}staticconstructortest()

", _count));

}static void main(string args)

}3.例項化時呼叫靜態建構函式(將主函式移到類外面)

///

/// 靜態建構函式

///

/// 注意:main主函式在類staticconstructortest之外:

///

/// 1. 在 obj1 物件被建立前,staticconstructortest 載入靜態字段:

/// 呼叫靜態欄位_count;

/// 呼叫靜態建構函式 static staticconstructortest();

/// 呼叫建構函式 構建obj1;

///

/// 2.如果注釋掉 obj1 和 obj2的構造**(即:直接訪問類的靜態屬性時,觸發初始化【靜態字段】和【靜態構造器】)

/// 即:直接呼叫 訪問類靜態屬性count的** console.writeline(staticconstructortest.count),

/// 則呼叫順序:

/// 呼叫靜態欄位_count;

/// 呼叫靜態建構函式 static staticconstructortest();

///

///

public class staticconstructortest

}static staticconstructortest() // static ctor

", _count));

}public staticconstructortest() // public ctor

", _count));}}

class program

}4.引用靜態成員時呼叫建構函式(將主函式移到類外面)

注釋掉obj1和obj2的例項化**

class program

}

C 靜態建構函式

c 靜態建構函式 靜態建構函式是 c 的乙個新特性,在程式設計過程中用處並不廣,它的主要目的是用於初始化一些靜態的變數。因為這個建構函式是屬於類的,而不屬於任何乙個例項,所以這個建構函式只會被執行一次,而且是在建立此類的第乙個例項或引用任何靜態成員之前,由 net 自動呼叫。在程式中我們可以這樣寫 ...

c 靜態建構函式

c 靜態建構函式,又稱類建構函式。它是屬於類的,不屬於任何乙個類的例項。它具有以下特點 1 以static定義的,無訪問修飾符,無返回型別,無引數的建構函式,如 code class test 2 不能通過 顯式的呼叫靜態建構函式 3 靜態建構函式在類的靜態成員第一次訪問或第乙個類例項建立之前由系統...

C 靜態建構函式

c 靜態建構函式 duduhe譯 簡介 net c 提供靜態建構函式功能,用以初始化靜態資料及執行某項特殊操作,該操作可能僅需執行一次。靜態建構函式用如下格式來宣告 static classname 以下任意情況發生時,靜態建構函式自動呼叫 l類例項的建立。l類的任意乙個靜態成員 屬性或方法 被呼叫...