C#變數初始化是C#強調安全性的另一個例子。簡單地說,C#編譯器需要用某個初始值對變數進行初始化,之後才能在操作中引用該變數。大多數現代編譯器把沒有初始化標記為警告,但C#編譯器把它當作錯誤來看待。 1.在C#中,變數的聲明格式為: 數據類型 變數名; 2.變數的賦值格式為: 變數名 = 數據; 3 ...
C#變數初始化是C#強調安全性的另一個例子。簡單地說,C#編譯器需要用某個初始值對變數進行初始化,之後才能在操作中引用該變數。大多數現代編譯器把沒有初始化標記為警告,但C#編譯器把它當作錯誤來看待。
1.在C#中,變數的聲明格式為:
數據類型 變數名;
2.變數的賦值格式為:
變數名 = 數據;
3.一般情況下,都是先聲明後賦值,或者在聲明變數的同時就賦初值。然而有些時候在程式的開發設計中,往往忘了要賦初值(即進行初始化),這樣就會導致在程式的設計中,會出現意想不到的錯誤。
解釋:當我們在聲明一個變數的時候,此時會進行記憶體分配(比如int i;此時會在堆棧上分配4個位元組),也就是在進行變數聲明時會進行記憶體的分配,以保存該類型對應的值。至於我們聲明一個變數後不進行賦值便使用,此時是編譯器會報錯,錯誤提示是:使用了一個未賦值的變數。在.NET中有一個概念應該是大家都很熟悉的,那就是類型安全。何為類型安全,這個提問應該說是個最好的例證。如果有註意,在.NET編譯器中,對未賦值的變數進行使用的時候,編譯器會提示這是個錯誤,而在其他語言編譯器中對未賦值變數的使用提示的是警告。
4.C#中使用兩種方式保證類型安全:
1)變數是類或者結構中的欄位,如果沒有進行顯示賦值,在預設狀態下創建相應變數時,其值為對應類型預設值。
2)方法的局部變數必須在代碼中顯示初始化,之後才可以在語句中進行使用。初始化不是在聲明變數時進行的,編譯器會通過檢查所有可能的路徑,如果檢測到局部變數在初始化之前就使用了它的值,編譯器就會產生錯誤。
1 public static void Main() 2 { 3 int a; 4 Console.WriteLine(a); 5 return; 6 }
以上代碼在編譯器中報:Use of unassigned local variable 'd' (使用了未賦值的局部變數“a”)。
雖然這種保護機制讓人很煩,不過為了養成良好的變成習慣,還是應該使用變臉的時候,要在聲明變數的同時進行初始化,以免給自己帶來不必要的麻煩。