c 中物件的初始化順序

2021-05-21 14:05:17 字數 427 閱讀 7545

在c#中乙個物件建立時按怎樣的順序初始化呢,下例**說明一切。

using system;

class base

public base()

}class subclass : base

public subclass()

}class classmembertype

public classmembertype(string text)}}

輸出結果如下:

物件的初始化順序如下:

靜態構造方法被呼叫

派生類靜態成員初始化

派生類靜態構造方法被呼叫

派生類例項成員初始化

基類靜態成員初始化

基類靜態構造方法被呼叫

基類例項成員初始化

基類例項構造方法被呼叫

派生類例項構造方法被呼叫

c 物件初始化順序

c 物件初始化 1.先變數後建構函式。變數先被初始化 然後建構函式被執行 2.先靜態化後例項化。當乙個類被訪問時 靜態變數和建構函式最先被初始化 接著是物件的例項化變數和建構函式被初始化 3.先派生類後基類。對於變數和靜態建構函式 派生物件在基物件之前被初始化.比如 c類派生自b類 b類派生自a類 ...

C 物件的初始化順序

當構造乙個c 物件時,理解物件的字段和建構函式的順序是非常重要的 derived static fields 派生類靜態字段 derived static constructor 派生來靜態建構函式 derived instance fields 派生類例項字段 base static fields...

物件的初始化順序

由 static 關鍵字修飾的 如 類變數 靜態變數 靜態 塊 將在類被初始化建立例項物件之前被初始化,而且是按順序從上到下依次被執行 沒有 static 關鍵字修飾的 如 例項變數 非靜態變數 非靜態 塊 初始化實際上是會被提取到類的構造器中被執行的,但是會比類構造器中的 塊優先執行到,其也是按順...