2010-02-22 73 views
5

靜態變量在C#中的功能與C++中的相同或相似嗎?C++與C#中的靜態變量有什麼區別?

編輯:

在C++中,你可以在許多不同的上下文中使用靜態變量 - 例如:1)全局變量,2)本地函數變量,3)班的成員 - 將會用C#類似最終用途的行爲類似於的C++?

回答

5

Static在C++中有多種含義。

C#中的靜態變量基本上只有一個含義:變量的作用域是一個類型。在C#中,類型上的靜態用於表示一個類型範圍的變量。方法上的靜態是一個類型範圍的方法。也可以在類上使用靜態來表示整個類只包含靜態方法,屬性和字段。

函數作用域內的靜態變量或非類作用域靜態值並不等同。


編輯:

在效應初探您的編輯,C#基本上只使用靜態類成員。 C#中不支持全局變量和局部靜態函數變量。另外,正如我上面提到的,你可以標記整個類「靜態」,這基本上只是讓編譯器檢查類中沒有非靜態成員。

0

C#中的靜態變量的行爲與C++中的靜態成員變量類似。這超出了C++中'static'關鍵字的多重含義,它們中只有一個存在於C#的上下文中。例如。您不能將範圍限制爲C#中的靜態文件(嚴格來說是C函數)

1

From MSDN: 靜態關鍵字:在C++中,靜態可用於聲明類級別實體和聲明類型這是特定於模塊的。在C#中,靜態僅用於聲明類級實體。