C#中变量(成员变量、局部变量、全局变量)的作用域
生活随笔
收集整理的這篇文章主要介紹了
C#中变量(成员变量、局部变量、全局变量)的作用域
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
不管在任何編程語言中都有變量的定義,變量就像是一個容器,不同的變量會在內(nèi)存中占據(jù)不同大小的內(nèi)存空間。定義變量后會將分配的地址綁定在這個變量名上,以后對該變量名的操作就是對該內(nèi)存地上存儲內(nèi)容的操作。
namespace test {class myTest{int loop = 0; //實例成員變量static int num = 0; //靜態(tài)成員變量public static int value = 10; //全局變量void Main(){int m = 0; //局部變量for (int i = 0; i < 100; i++){//i為局部變量,其作用域僅為for循環(huán)體內(nèi)Console.WriteLine(i);}}} }成員變量:在類中定義的變量,在整個類中都有效,類中定義的方法都可以使用該變量。成員變量又可以分為實例成員變量和靜態(tài)成員變量。
- 靜態(tài)成員變量:使用static修飾的成員變量,static用于把屬性和方法綁定到類本身,而不是使用類創(chuàng)建的對象。使用靜態(tài)成員變量時直接使用類名稱進行調(diào)用,無論用戶使用該類創(chuàng)建了多少個對象,靜態(tài)成員變量始終只有一個,始終綁定到類本身,每個創(chuàng)建的對象中并不存在該靜態(tài)成員變量。
- 實例成員變量:實例成員變量是綁定使用類創(chuàng)建的對象上的,要想使用實例成員變量,必須先使用類創(chuàng)建一個對象。使用實例成員變量時是使用對象名進行調(diào)用,使用同一類創(chuàng)建的多個對象中各自有自己的實例成員變量,互相隔離,互不干擾。
局部變量:在方法體中定義的變量,其使用范圍只局限在定義它的方法之中或者方法之中的循環(huán)體之內(nèi),作用域不超過一個大括號
全局變量:在類中定義的變量用static修飾的變量為全局變量,在整個namespace中的所有類中都可以使用
?
需要注意的是:定義變量時不能在同一作用域內(nèi)定義相同名稱的變量
?
注意:
1)C#中定義的變量在使用之前必須進行初始化,否則編譯器會報錯
大多數(shù)的現(xiàn)代編譯器并未將未初始化的變量標記為警告,例如在C語言中就可以再定義變量后不賦值就進行使用,此時變量中存儲的是垃圾值,但C#編譯器將使用未初始化的變量作為錯誤。
C#中有兩種方法可確保變量在使用前對其進行初始化:
- 變量是類或結(jié)構(gòu)中的字段,如果沒有顯式初始化,創(chuàng)建這些變量時,其值就默認是0(類和結(jié)構(gòu)在后面討論)
- 方法中定義的局部變量必須在代碼中顯式初始化,之后才能在語句中使用該變量。此時,初始化不是在聲明該變量時進行的,但編譯器會通過方法檢查所有可能的路徑,如果檢測到局部變量在初始化之前就使用了它的值,就會產(chǎn)生錯誤
?
?
?
總結(jié)
以上是生活随笔為你收集整理的C#中变量(成员变量、局部变量、全局变量)的作用域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统-高响应比优先调度算法
- 下一篇: C#中的参数数组