日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

第二章、C#的數(shù)據(jù)類型(2.1節(jié)~2.6節(jié):值類型以及

系統(tǒng) 2617 0

2.1、C#語法概述

1 )、在 C# 中,編譯器是忽略空白符的(包括空格和制表符),所以寫程序的時候,可以按照自己的習(xí)慣來格式化代碼,以滿足自己的需求。比如一個變量與一個符號之間可以是一個空格也可以是多個空格,也可以沒有空格,但是建議有一個空格。

2 )、在 C# 中,任何一個語句都是以分號結(jié)束的,所以在一行上可以寫多條語句,每個語句以分號結(jié)束即可。但是一般都是一行寫一條語句,不能把一條語句分多行寫。

3 )、在 C# 中,為了程序更具可讀性,一般都要添加很多的注釋,在注釋的區(qū)域內(nèi),編譯器是不會去編譯被注釋的內(nèi)容的,有三種注釋方式:

A 、單行注釋:在一行之前使用左斜杠“ //

B 、多行注釋:在要注釋的多行前后加上“ /*……*/

C 、對函數(shù)、屬性等的說明注釋“ /// ”,可以對屬性、函數(shù)、類進(jìn)行說明,也可以對函數(shù)的參數(shù)進(jìn)行說明,以后調(diào)用的時候能看到說明了

4 )、可以隱藏代碼: #region……#endregion

5 )、 C# 語言是塊結(jié)構(gòu)語言,可以將幾個語句包含到“ {} ”中,構(gòu)成一個塊,注意:在塊中定義的變量,作用域只在塊中。

2.2、C#數(shù)據(jù)類型的概述

數(shù)據(jù)類型分類圖

2.3、值類型(簡單類型)

1 )、 byte 類型

byte 類型是一個無符號整數(shù)類型,它占 1 個字節(jié)。

2 )、 int 類型

int 類型是有符號整數(shù)類型,占用 4 個字節(jié)。

3 )、 long 類型

long 類型是有符號整數(shù)類型,占用 8 個字節(jié)。

4 )、 bool 類型

bool 類型是個邏輯類型,它的值是邏輯值,只有兩個,一個是 true ,一個是 false 。對它進(jìn)行賦值、比較都必須用 true false ,輸出也是 true false 。不能賦值為數(shù)字。

5 )、 double

雙精度,占 64 個字節(jié)。在程序中任意寫的一個浮點數(shù)字是雙精度。

6 )、 float

單精度,占 32 個字節(jié)。因為在程序中任意寫的一個浮點數(shù)字是雙精度,而在 C# 中,低精度的數(shù)值轉(zhuǎn)換成為高精度的數(shù)值可以隱式的轉(zhuǎn)換,但是高精度的轉(zhuǎn)換成為低精度只能顯示

的轉(zhuǎn)換。所以要把一個浮點數(shù)字直接賦值給單精度變量,會出錯,必須顯式轉(zhuǎn)換,或者在浮點數(shù)字后面加上 f

7 )、 char

字符是用單引號括起來的,字符串是用雙引號括起來的字符序列集合。字符是以數(shù)值的形式存放在內(nèi)存中的,這個數(shù)值就是這個字符的編碼。編碼有很多種的方式,但是主流的就是以下幾種:

A ASCII :如果系統(tǒng)采用這種編碼方式,這種編碼的字符中,數(shù)字、字母占用一個字節(jié),漢字占用兩個字節(jié)。

B Unicode :如果系統(tǒng)采用這種編碼方式,這種編碼的所有字符統(tǒng)一占用兩個字節(jié)。

C GB2312 :如果系統(tǒng)采用這種編碼方式,這種編碼的字符中,數(shù)字、字母占用一個字節(jié),漢字占用兩個字節(jié)。這個是系統(tǒng)的默認(rèn)編碼。

C# 中, char 類型占用兩個字節(jié),所以不論字符采用何種編碼方式,它都可以接受任

意一個字符,比如漢字。但是在 C#.NET 中,默認(rèn)采用的編碼方式是 ASCII C#.NET 中的類型是非常嚴(yán)格的,雖然 char 類型的數(shù)據(jù)最終是以整數(shù)編碼的形式存放在內(nèi)存中,但是不能把整數(shù)直接賦值給 char 類型的數(shù)據(jù), char 可以直接賦值給 int 整數(shù)。

常見的轉(zhuǎn)義字符:

\

單引號

\ ’’

雙引號

\\

右斜杠

\0

空字符,連空格都不是

\a

響鈴

\n

換行

\r

回車

\t

Tab 制表符

注意:

1 )、在 windows 下回車換行符連用: \r\n ,否則無效,即在一行與另一行之間隱含了 \r\n 兩個字符。

2 )、在 C# 中,右斜杠 \ 只要出現(xiàn)在字符串中了,那么系統(tǒng)就認(rèn)為它跟后面的字符一起構(gòu)成

轉(zhuǎn)義字符,如果這種轉(zhuǎn)義字符是存在的,那么就編譯通過,如果轉(zhuǎn)義字符不存在,那么編

譯就無法通過,會報錯,認(rèn)為轉(zhuǎn)義字符非法。但是如果在字符串前面加上了 @ 符號,那么

字符串就被認(rèn)為是逐字符字符串,里面的右斜杠 \ 就會被認(rèn)為是普通的字符,而不會被認(rèn)為

是轉(zhuǎn)義字符前面的右斜杠了。

3 )、單引號要特別注意,其實在 C# 中不轉(zhuǎn)義,也可以直接使用。

2.4、值類型(枚舉類型)

有些變量,不論它的值怎么變化,也只可能是幾個固定的值,那么這種變量就可以定義成枚舉類型:

Enum typeName

{

Value1

Value2 = 5

Value3

Value4

……

}

枚舉值是有值的,默認(rèn)情況下第一個值是 0 ,后面依次加 1 遞增,也可以對枚舉值進(jìn)行賦值,那么以賦值為主,后面的依次加 1

1 )、定義一個枚舉類型的變量:

typeName a

2 )、給它賦值:

a = typeName.value1;

賦值完成之后,輸出的也是枚舉值而非數(shù)值。

3 )、可以將枚舉值轉(zhuǎn)換成為整數(shù) :

Int b = (int)a; 或者

int b = Convert.ToInt32(a);

4 )、枚舉類型是一個類型,類也是一個類型,很顯然是一個級別的,所以枚舉類型可以定義在類的外面,命名空間下面,這樣才比較合理。當(dāng)然在類的內(nèi)部去定義枚舉類型也可以,但是不推薦這么做。在本項目中定義的類型可以直接引用,但是在別的項目中定義的類型,首先要添加引用,然后再 using (如果 using 省略的話,那么就需要命名空間名 . 類名),然后如果是定義在類外的,那么必須是 public 才可以引用到,如果是在類的內(nèi)部的,那么不僅要枚舉類型是 public 的,還要類是 public 的,引用的時候是類名 . 枚舉類型名。

2.5、值類型(結(jié)構(gòu)類型)

C#.NET 中,結(jié)構(gòu)體基本不使用,因為面向?qū)ο蟮脑O(shè)計思想中,類可以取代結(jié)構(gòu)體,更加方便。在此主要說明一下類與結(jié)構(gòu)體的區(qū)別:

1 )、結(jié)構(gòu)體是值類型,而類是引用類型的。

2 )、當(dāng)結(jié)構(gòu)體和類作為函數(shù)參數(shù)的時候,參數(shù)傳遞時,結(jié)構(gòu)傳的是值,類傳的是引用。

3 )、結(jié)構(gòu)的實例化可以不使用 new

4 )、結(jié)構(gòu)也可以聲明構(gòu)造函數(shù),但是必須帶參數(shù)。

5 )、結(jié)構(gòu)不能繼承。

6 )、結(jié)構(gòu)中的字段是不能被初始化的。

2.6、值類型變量的作用域和生存期

非靜態(tài)變量,只考慮類的內(nèi)部的情況:

1 )、值類型的變量如果是定義在類的內(nèi)部作為屬性變量,那么就具有該類全局作用域,即類內(nèi)部的函數(shù)都可以調(diào)用這個變量,哪怕變量定義在函數(shù)的下面。但是一般變量都定義在所有的函數(shù)之前;一個對象具有一套變量。

類的對象創(chuàng)建開始,該對象這一套變量在該對象中就分配了存儲空間,直到該對象釋放,那么該對象這一套變量也就釋放了。

2 )、在函數(shù)中,變量的作用域是從定義的位置開始,一直到函數(shù)結(jié)束為止。在函數(shù)中,變量定義的前面是不可以引用該變量的。

在函數(shù)中,函數(shù)被調(diào)用的時候,定義變量的時候,變量就被分配了存儲空間,函數(shù)結(jié)束了,變量就會自動的被釋放了。

3 )、在函數(shù)中的某個塊 {} 中定義的變量,作用域是從這個塊中定義開始,一直到塊結(jié)束為止。

函數(shù)被調(diào)用的時候,定義的時候分配存儲空間,塊結(jié)束的時候就釋放了。

但是要特別注意:即使是在塊中定義的變量,即使他的作用域只在塊中,而不在塊外,也不能在塊中聲明一個與塊外同名的變量(這個塊外同名變量是指該函數(shù)中的,具有從聲明開始一直到函數(shù)結(jié)束為止的作用域的變量,這個變量可以是在塊前也可以是在塊后的,這個變量不在該函數(shù)的另外一個塊中)。但是在一個函數(shù)的不同的兩個塊中卻可以聲明同名的變量。

4 )、如果在類中定義的變量與在函數(shù)中定義的變量同名的話,那么函數(shù)中的變量會覆蓋掉類中的,在該函數(shù)中,以該函數(shù)中定義的變量為主。但是類中的這個變量在其他函數(shù)中還是可以引用的。

第二章、C#的數(shù)據(jù)類型(2.1節(jié)~2.6節(jié):值類型以及值類型變量的作用域與生存期)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 铜鼓县| 南皮县| 荥经县| 灵石县| 梁山县| 边坝县| 绥阳县| 平乐县| 沅江市| 庆安县| 勃利县| 东乌珠穆沁旗| 莲花县| 娱乐| 永胜县| 昔阳县| 建德市| 习水县| 东城区| 寿阳县| 赣州市| 丽江市| 崇礼县| 新余市| 浦江县| 安塞县| 阿图什市| 根河市| 东至县| 柘城县| 英德市| 宁化县| 孟州市| 泰安市| 台安县| 望都县| 康马县| 辉县市| 长泰县| 孝义市| 克山县|