[問題] 關于一個類聲明時有一個元素是這個類的實例的問題

看板C_Sharp (C#)作者 (賈富貴)時間14年前 (2011/05/26 02:34), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
class yilei { public int x = 2; public int y = 7; public int fangfa(int u, int v) { return u + v; } public int ziji() { return x * y; } public static yilei bb = new yilei(); } 這個類聲明的最后一個元素是這個類本身的一個實例,但聲明為靜態的,經驗證這個類 沒有錯誤,可以實例化,但如果不聲明為靜態的,就不能實例化,會產生無限遞歸。 我明白,當類實例化時,靜態元素先于類實例化之前產生,且只產生一次,但還是想不 清楚,實例化時應該是最先產生"bb"這個元素,但要產生"bb",則必須調用構造函數,但 調用構造函數時,又必須先產生“bb”元素,這也是無限遞歸啊。 為什了作為靜態變量就可以? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.5.69.43

05/26 03:01, , 1F
static只能產生一次 第二次就會跳出了 (應該吧.....)
05/26 03:01, 1F

05/26 13:23, , 2F
我猜是靜態類別成員屬於類別,類別成員屬於物件
05/26 13:23, 2F
文章代碼(AID): #1DtKkqNI (C_Sharp)
文章代碼(AID): #1DtKkqNI (C_Sharp)