C#中變量的作用域

變量的作用域

可以在類、接口、方法、語句塊、結構體中定義變量。

Java類似,C#中沒有C++中的所謂全局變量的概念。

雖然很多書上會將在類中定義的static變量或const變量說明爲全局變量,但是這種類的成員變量(或者叫類的屬性)和C++中的全局變量有很大的差別。C++中的全部變量是直接定義在所有的函數和類之外的,但C#和Java中不能定義這種變量。


比較有意思的一點:

對於string類型以及類類型等的變量,如果是在循環語句外聲明,但沒有初始化,而是在循環語句中進行初始化,則在循環語句外部,該變量仍被視爲沒有初始化。也就是說,在循環語句體中進行的初始化值,在退出循環語句時就被消除了。

但是,如果在循環語句之前對變量進行了初始化,那麼循環體中對變量進行的任何改變都會被保留下來。(Java中也是如此)

如:

string str;
for(int i = 0; i < 10; i++)
{
    str = "Line : " + Convert.ToString(i);
}
Console.WriteLine(str);    //會報錯,說str沒有初始化

這樣就可以

string str = "";
for(int i = 0; i < 10; i++)
{
    str = "Line : " + Convert.ToString(i);
}
Console.WriteLine(str);    //str == "Line : 9"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章