- ASP.NET動態網站開發實戰教程
- 張梅 陳廣祥 蘇希
- 1498字
- 2020-11-27 17:49:01
2.3 變量
在程序的運行中,計算中臨時存儲的數據都必須用到變量,變量的值也會放置在內存當中,由計算機運算后再保存到變量中。變量是內存中可以讀寫的內存單元,變量的數據類型決定存儲數據的內存單元所占用空間的大小及存儲在其中的數據格式。
2.3.1 變量分類
1.值類型變量
這種類型的變量,直接通過其值使用,不需要對它進行引用。所有的值類型均隱式地派生自System.ValueType,并且值類型不能派生出新的類。值的類型不能為null,但是可空類型允許將null值賦給值類型。下列代碼是聲明并初始化一個值類型的變量。
2.引用類型變量
引用類型的變量又稱為對象,可存儲實際數據的引用。常見的引用類型有class、inter-face、delegate、object和string。多個引用變量可以附加于一個對象,而且某些引用可以不附加于任何對象,如果聲明了一個引用類型的變量卻不給它賦給任何對象,那么它的默認值就是null。相比之下,值類型的值不能為null。
2.3.2 變量命名規則和命名習慣
聲明變量并不是隨意聲明的,變量的聲明有自己的規則。在C#中,應用程序包含許多關鍵字,包括int等是不能夠聲明為變量名的,如int int是不允許的。當使用關鍵字做變量名時,編譯器會混淆該變量是變量還是關鍵字,從而編譯出錯。所以在進行變量的聲明和定義時,需要注意變量名稱是否與現有的關鍵字重名,表2-2列出了C#中的關鍵字。
命名規則就是給變量取名的一種規則,一般來說,命名規則就是為了讓開發人員給變量或者命名空間取個好名,不僅要好記,還要說明一些特性。在C#里面,一些常用的命名習慣如下。
■Pascal大小寫形式:所有單詞的第一個字母大寫,其他字母小寫。
■Camel大小寫形式:除了第一個單詞,所有單詞的第一個字母大寫,其他字母小寫。
表2-2 C#關鍵字列表
(續)
2.3.3 變量聲明、初始化
要聲明一個變量就需要為這個變量找到一個數據類型,在C#中,數據類型由.NET Framework和C#語言來決定,表2-3列舉了一些預定義的數據類型。聲明變量的語法非常簡單,即在數據類型之后編寫變量名,如一個人的年齡(age)和一輛車的顏色(color),聲明代碼如下:
變量在聲明后還需要初始化,初始化代碼如下:
當然,聲明和初始化變量可以合并為一個步驟簡化編程開發,示例代碼如下:
當運行了以上代碼后會提示錯誤信息:不能隱式地將double類型轉換為float類型;請使用“F”后綴創建此類型。
從錯誤中可以看出,將變量后綴增加一個“F”即可解決此問題,代碼如下:
這是因為若無其他指定,C#編譯器將默認所有帶小數點的數字都是double類型。如果要聲明成其他類型,可以通過后綴來指定數據類型,表2-3列出可用的后綴。
表2-3 可用的后綴表
2.3.4 變量類型轉換
在應用程序開發當中,很多的情況都需要對數據類型進行轉換,以保證程序的正常運行。類型轉換是數據類型和數據類型之間的轉換,在.NET中,存在著大量的類型轉換,常見的類型轉換代碼如下:
在上述代碼中,i是整型變量,而WriteLine方法的參數是object類型,但是WriteLine方法依舊能夠正確輸出,是因為系統將i的類型在輸出的時候轉換成了字符型。在.NET框架中,有隱式轉換和顯式轉換,隱式轉換是一種由CLR自動執行的類型轉換,如上述代碼中的就是一種隱式的轉換(開發人員不明確指定的轉換)。該轉換由CLR自動的將int類型轉換成了string型。在.NET中,CLR支持許多數據類型的隱式轉換,CLR支持的類型轉換列表見表2-4。
表2-4 CLR支持的轉換列表
顯式轉換是一種明確要求編譯器執行的類型轉換。在程序開發過程中,雖然很多地方能夠使用隱式轉換,但是隱式轉換有可能存在風險,顯式轉換能夠通過程序捕捉進行錯誤提示。雖然隱式也會提示錯誤,但是顯式轉換能夠讓開發人員更加清楚地了解代碼中存在的風險并自定義錯誤提示以保證任何風險都能夠及早避免,示例代碼如下:
上述代碼說明了顯式轉換的基本語法格式。
注意:顯式的轉換可能導致數據的部分丟失,如3.1415轉換為整型的時候會變成3。