[C#, CSharp] 生命週期(Life Cycle)
生命週期
- 敘述區塊(Statement Block):被大括號框住的程式碼通常稱為區塊或敘述區塊
- 生命週期:每個變數都會有其存在期間(Storage Duration),即程式執行時變數存活的時間
- 生存空間(Scope):變數可被存取的程式碼區塊
- 區域變數:又叫自動變數(Automatic Variable)
- 生命週期與生存空間:起始於變數宣告,結束於宣告敘述所在的區塊的大右括號。
- 同一區塊內不可宣告同名的區域變數
- 可用auto關鍵字宣告自動變數,但因預設值就是auto,所以通常都不需要加auto
- 在生命週期內會佔用記憶體
- 全域變數(Global Variable)
- 宣告在所有區塊和類別之外的變數
- 不可宣告同名的全域變數
- 若沒有給定初始值,會自動給0
- 生命週期:在程式執行到程式結束期間都會暫用記憶體
- 生存空間:從宣告後的任意程式碼區塊都可存取
- 靜態變數(Static Variable)
- 以關鍵字static修飾的變數
- 不可宣告同名的靜態變數
- 若沒有給定初始值,會自動給0
- 生命週期:在程式執行到程式結束期間都會暫用記憶體
- 生存空間:任意程式碼區塊皆可存取
- 生命週期與生存空間:
- 生命週期是指變數存活的期間,即變數存活在記憶體的期間。
- 生存空間是指變數可被存取的程式碼區塊。
- 兩者意義接近,但一個是指存活時間(時間),一個是指活動範圍(空間),所以有著本質上的差異。
- 例如說有一個人活了70歲,而他出生在一個沒有飛機和船的海島國家,他的生命週期就是0~70歲這段時間,生存空間就是他出生的國家。
- 當一個區塊宣告一個和全域變數同名的區域變數時
- 直接存取到的變數為區塊變數
- 加上範圍運算子:: 可存取到全域變數
Δ 回到最上方