變量的聲明及初始化


 1 //聲明變量的同時進行初始化
 2 int intVariable = 10;  3 
 4 //先聲明一個變量,然后再初始化
 5 string strVariable;  6 strVariable = "Variable";  7 
 8 //同時聲明多個變量並初始化,其中變量的類型必須一致
 9 int intVarialbe1 = 10, intVariable2 = 20, intVariable3 = 30; 10 string strVariable1 = "Variable1", strVariable2 = "Variable2", strVariable3 = "Variable3"; 11 

錯誤嘗試:如果聲明了變量而沒有為其賦初始值,會出現什么情況呢?

2-1我們通過下邊的代碼進行測試

1 //聲明變量,不進行初始化
2 int intVariable; 3 string strVariable; 4 
5 //引用未進行初始化的變量
6 Console.WriteLine(intVariable.ToString()); 7 Console.WriteLine(strVariable);

代碼下方出現波浪線,可以看到下圖的錯誤提示:

 

圖 2‑1 變量未賦初始值時的錯誤

 

編譯時,錯誤列表中的錯誤提示:

 

圖 2‑2 錯誤列表中的錯誤提示

為什么必須為聲明的變量進行初始化呢?

例 2-1 中,由於在操作中引用了沒有進行初始化的變量,而導致了錯誤的產生。變量的初始化是C#強調安全性的方式之一,C#編譯器會將未初始化的變量當作錯誤看待,這可以防止我們無意的從其他程序遺留下來的內存中獲取垃圾值。

為了防止使用未初始化的變量,導致問題的產生,C#通過兩種方式來解決:

  • 方法中的局部變量必須在代碼中顯式初始化,如果編譯器檢測到局部變量在初始化之前就使用了它的值,就會產生錯誤。(需要強調的是,這里說的是局部變量)
  • 類或結構中的字段,不管是靜態的還是非靜態的,這些變量如果沒有顯式初始化,在調用其構造函數時,就為其設置了默認值(int、double、bool等值類型的變量初始化為它的默認值;數組、集合等引用類型的變量初始化為Null)。

表格 2‑1 值類型變量的默認值

變量類型

默認值

sbyte,byte,short,ushort,int,uint,long,ulong

0

char

'\0'

float

0.0f

double

0.0d

decimal

0M

bool

false

enum

0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM