全域性變數與static

2021-04-08 23:27:40 字數 540 閱讀 3820

c#是沒有全域性變數的,c#設計者弄了乙個叫singleton的模式,用static可以當作全域性變數來用。

請看下面的類:

class class1

眾所周知,我們在主類裡面要想引用這個類,必須先class1 c1 = new class1();要想c1.intnum則必須public int intnum而不能缺少public,否則不能引用。

new出來以後,我們會驚奇的發現只能c1.intnum而不能c1.intnum2,這是為什麼呢?這就是static的力量。static是靜態的意思,是個修飾符,再往深的意思,就只能靠自己理解了。

這時候,你用class1.intnum2可以訪問,而且class1.intnum2永久存在,這就是全域性變數,你可以隨時訪問它。

如果我把static修飾符加在class前面,會怎樣呢?如下:

static class class2

如果是這樣,那麼class2裡面就不允許public int intb了,必須加修飾符public static int intb。裡面的成員都可以用class2.inta訪問。 

static全域性變數 全域性變數

1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...

static全域性變數與普通的全域性變數

一 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是...

static 變數 全域性變數

一 static 變數 static變數大致分為三種用法 1.用於區域性變數中,成為靜態區域性變數.靜態區域性變數有兩個用法,記憶功能和全域性生存期.2.用於全域性變數,主要作用是限制此全域性變數被其他的檔案呼叫.3.用於類中的成員.表示這個成員是屬於這個類但是不屬於類中任意特定物件 1.靜態區域性...