官术网_书友最值得收藏!

  • 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限于局部變量,而且必須是有賦值,不賦空值。

主站蜘蛛池模板: 化州市| 观塘区| 滕州市| 阜城县| 吕梁市| 乡宁县| 边坝县| 西峡县| 永嘉县| 大同县| 行唐县| 佛坪县| 个旧市| 秭归县| 昌黎县| 尼木县| 广州市| 信丰县| 兴城市| 东乡族自治县| 通山县| 九龙城区| 宣汉县| 丰镇市| 乃东县| 壶关县| 宝应县| 来宾市| 专栏| 珠海市| 雷波县| 扎赉特旗| 浠水县| 南部县| 维西| 双城市| 永泰县| 岑溪市| 桃园市| 临潭县| 土默特右旗|