- 21天學(xué)通ASP.NET
- 顧寧燕等編著
- 1991字
- 2018-12-29 13:22:22
2.1 變量與常量
C#語言與其他編程語言一樣,通過變量來存儲(chǔ)各類數(shù)據(jù)信息。變量有名字,每一種變量分別對(duì)應(yīng)一種數(shù)據(jù)類型,是程序中數(shù)據(jù)流通的載體。常量,顧名思義,就是指在整個(gè)程序執(zhí)行過程中,這些值一直保持不變。常量是相對(duì)于變量來說的,每一個(gè)常量也對(duì)應(yīng)一種數(shù)據(jù)類型。
2.1.1 變量的數(shù)據(jù)類型
作為一名程序員應(yīng)該熟悉、掌握變量的數(shù)據(jù)類型,這樣才可以在程序中正確使用變量,提高開發(fā)效率。C#語言的變量類型如表2-1所示。
表2-1 數(shù)據(jù)類型

提示:C#語言中,對(duì)大小寫的程序命令有明顯區(qū)分。除了DateTime數(shù)據(jù)類型之外,其數(shù)據(jù)類型都是以小寫字母開頭。
一種數(shù)據(jù)類型,只允許對(duì)對(duì)應(yīng)變量執(zhí)行該數(shù)據(jù)類型的操作。例如String數(shù)據(jù)類型,只允許該類型的變量進(jìn)行字符串的相關(guān)操作,而不能操作日期或數(shù)值類型的變量。在表2-1中,已對(duì)各數(shù)據(jù)類型內(nèi)存占用大小做了說明。恰當(dāng)?shù)厥褂脭?shù)據(jù)類型,可以為應(yīng)用程序“瘦身”,提高其運(yùn)行效率。
2.1.2 變量的聲明
創(chuàng)建變量需要指明數(shù)據(jù)類型和名稱。變量名的定義盡量與該變量的作用相關(guān)。C#語言的變量聲明,是以數(shù)據(jù)類型在前,變量名在后的形式來定義的,其語法如下代碼所示。
DataType VarriableName;
Datatype表示數(shù)據(jù)類型,VarriableName則是用戶定義的變量名,其應(yīng)用如下代碼所示。
01 DateTime b_csrq; //定義一個(gè)嬰兒出生日期變量 02 string fn_name; //定義一個(gè)婦女姓名的字符串變量 03 string zf_name; //定義一個(gè)丈夫姓名的字符串變量 04 double nz_sale; //定義一個(gè)年終銷售總額的雙精度變量
以上變量名的定義,十分有意義。第01行代碼定義一個(gè)嬰兒出生的日期變量,該變量第一個(gè)字母源于英文baby的第一個(gè)字母,后面4個(gè)字母是由“出生日期”中文發(fā)音組成。第05行代碼定義變量名,開頭“fn”是“婦女”的中文發(fā)音。
老練的程序員更喜歡把數(shù)據(jù)類型的第一個(gè)字母或數(shù)據(jù)類型的縮寫,放在變量的前綴,如下代碼所示。
01 DateTime dtCsrq; //定義一個(gè)出生日期變量 02 string strName; //定義一個(gè)姓名字符串變量 03 int iCsrs; //定義一個(gè)出生人數(shù)的整型變量 04 bool bExit; //定義一個(gè)程序退出判斷的邏輯變量
上面的代碼第01行的變量開頭“dt”代表DateTime數(shù)據(jù)類型的縮寫。第02行代碼的變量,以“str”開頭是string數(shù)據(jù)類型的前三個(gè)字母。第03行中的變量名以“i”字母開頭,表示該變量為整型變量。第04行的變量以“b”字母開頭,表示一個(gè)bool數(shù)據(jù)類型。
整個(gè)程序中變量的定義要有一定的風(fēng)格,要有邏輯可循。如果以類型的第一個(gè)字母或縮寫開頭的,則整個(gè)程序就要保持這種風(fēng)格。在大型程序開發(fā)過程中,每個(gè)程序員都有一個(gè)變量定義規(guī)范表,以規(guī)范程序員的變量定義,這樣可以統(tǒng)一整個(gè)程序的開發(fā)風(fēng)格,并增強(qiáng)程序的可讀性,方便程序后期修改及二次開發(fā)。
2.1.3 變量的賦值
在變量定義之后,就可以對(duì)其進(jìn)行賦值。變量的賦值只需在“=”符號(hào)之后,設(shè)置所需數(shù)值就可以了,其語法如下代碼所示。
VarriableName=Value;
VarriableName表示變量,等號(hào)右邊為變量的賦值,其應(yīng)用如下代碼所示。
01 fn_name = "孟麗君"; //定義婦女的姓名為“孟麗君” 02 zf_name = "包拯"; //定義丈夫姓名為“包拯” 03 nz_sale = 56389.59; //定義年終銷售額為56389.59;
上面第01~02行代碼由于是字符串類型,所以其賦值要加上雙引號(hào),而第03行是數(shù)值類型,其賦值不用加引號(hào)。
注意:C#語言中每一行程序以英文分號(hào)“;”為結(jié)束,如果沒有,則視為與下行連接成為一行程序。如第02行結(jié)束沒有“;”,則C#語言默認(rèn)為“zf_name = "包拯"nz_sale= 56389.59;”,這樣程序會(huì)出錯(cuò)。如果第02行代碼在“=”前,按“Enter”鍵,將“= 56389.59;”代碼換行成第04行代碼。這時(shí)第03行代碼結(jié)束沒有“;”,C#語言默認(rèn)為“nz_sale = 56389.59;”,程序仍然正常執(zhí)行。
變量的賦值在變量聲明時(shí)就可以進(jìn)行,一般稱之為變量的初始化,其代碼如下所示。
01 string fn_name= "孟麗君"; //定義一個(gè)婦女姓名的字符串變量 02 string zf_name= "包拯"; //定義一個(gè)丈夫姓名的字符串變量 03 double nz_sale= 56389.59;; //定義一個(gè)年終銷售總額的雙精度變量
2.1.4 常量的定義
常量也是存儲(chǔ)信息的一種方法,但常量一經(jīng)賦值后,將保持不變。常量與變量一樣,需要定義數(shù)據(jù)類型,需要名稱。在 C#語中,定義常量可以通過 const 關(guān)鍵字來定義,也可以通過readonly關(guān)鍵字來定義。其定義的代碼如下:
01 const string zf_name= "包拯"; //將“包拯”定義為一個(gè)文本靜態(tài)常量 02 readonly fn_name= "孟麗君"; //定義一個(gè)婦女姓名的字符串常量
常量可以在程序中為其他變量賦值,其代碼如下:
string strName= zf_name; //定義字符串變量,并將常量值賦予該變量
通過const關(guān)鍵字定義的常量,只局限于以上的數(shù)據(jù)類型。一般情況下,不能在類的構(gòu)造函數(shù)中定義。通過readonly關(guān)鍵字來定義常量,沒有以上的限制,所以用readonly關(guān)鍵字來定義常量更具有靈活性。一般以 const 關(guān)鍵字定義的常量稱之為靜態(tài)常量。建議讀者多使用readonly關(guān)鍵字來定義常量,這樣可以減少程序出現(xiàn)潛在錯(cuò)誤。
2.1.5 隱含類型變量
隱含類型變量,是相對(duì)于正常明確定義數(shù)據(jù)類型變量而言的。隱含類型變量是.NET 3.0后發(fā)展的新型數(shù)據(jù)類型,該類型通過var關(guān)鍵字來定義。在定義隱含類型變量時(shí),必須同時(shí)為該變量賦值,其代碼如下:
var fn_name= "孟麗君"; //定義一個(gè)隱含類型變量--姓名
隱含類型變量,在定義時(shí)會(huì)根據(jù)其賦值推斷出該變量,定義成什么類型。例如上面的代碼, C#會(huì)推斷該隱含類型變量其實(shí)是字符串類型。var 關(guān)鍵字聲明的變量?jī)H限于局部變量,而且必須是有賦值,不賦空值。
- 過程控制工程及仿真
- 教父母學(xué)會(huì)上網(wǎng)
- 輕松學(xué)Java
- 自動(dòng)檢測(cè)與轉(zhuǎn)換技術(shù)
- INSTANT Varnish Cache How-to
- 水晶石精粹:3ds max & ZBrush三維數(shù)字靜幀藝術(shù)
- Nginx高性能Web服務(wù)器詳解
- 網(wǎng)絡(luò)安全技術(shù)及應(yīng)用
- 工業(yè)自動(dòng)化技術(shù)實(shí)訓(xùn)指導(dǎo)
- 人工智能技術(shù)入門
- EJB JPA數(shù)據(jù)庫(kù)持久層開發(fā)實(shí)踐詳解
- 運(yùn)動(dòng)控制系統(tǒng)
- 微機(jī)組裝與維護(hù)教程
- Microsoft 365 Mobility and Security:Exam Guide MS-101
- fastText Quick Start Guide