てぃぐれのプログラマwiki

ワクワクに従う

インスタンス変数とStatic変数の違いとメモリ領域のイメージ C#

1, インスタンス変数

オブジェクト毎に値を持つ

 →ヒープ領域に展開される

 

2, Static変数(C#におけるグローバル変数)

クラス毎に値を持つ

 →アプリが終わる(クラスが破棄?される)まで変数を保持する

 →静的領域に展開される

 

3, Staticメソッド

クラス毎にメソッドを持つ

 →オブジェクトを生成しなくていいので、メモリの節約になる。

 →静的領域に展開される(インスタンスメソッドも静的領域に展開される)

 

4, メモリの使われ方イメージ

f:id:tigretic:20220402192602j:plain