C#數(shù)據(jù)類型(二)

原文:https://blog.csdn.net/yysyangyangyangshan/article/details/7490939
C#的數(shù)據(jù)類型可以分為3類:數(shù)值類型帐要,引用類型,指針類型弥奸。指針類型僅在不安全代碼中使用榨惠。
值類型包括簡(jiǎn)單類型(如字符型,浮點(diǎn)型和整數(shù)型等)其爵,集合類型和結(jié)構(gòu)型冒冬。引用類型包括類類型,接口類型,代表類型和數(shù)組類型。

值類型和引用類型的不同之處是值類型的變量值直接包含數(shù)據(jù)果覆,而引用類型的變量把它們的引用存儲(chǔ)在對(duì)象中。對(duì)于引用類型的變量横侦,完全有可能讓兩個(gè)不同的變量引用同一個(gè)對(duì)象挥萌,這樣一來,對(duì)其中一個(gè)變量的操作就會(huì)影響到被另一個(gè)變量引用的對(duì)象枉侧。對(duì)于值類型的變量而言引瀑,每一個(gè)變量有它們自己的數(shù)值,因此對(duì)其中一個(gè)變量的操作不可能影響到另外一個(gè)變量榨馁。

1 值類型
所有的值類型都隱含地聲明了一個(gè)公共的無參數(shù)的構(gòu)造函數(shù)憨栽,這個(gè)構(gòu)造函數(shù)叫做默認(rèn)構(gòu)造函數(shù)。默認(rèn)構(gòu)造函數(shù)返回一個(gè)初始為零的值類型的實(shí)例翼虫,稱之為默認(rèn)值屑柔。
對(duì)于sbyte,byte珍剑,short掸宛,ushort,int招拙,uint唧瘾,long,ulong别凤,默認(rèn)值為0饰序。
對(duì)于char,默認(rèn)值是'\x0000'
對(duì)于float规哪,默認(rèn)值是0.0F
對(duì)于double菌羽,默認(rèn)值是0.0D
對(duì)于decimal,默認(rèn)值是0.0M
對(duì)于bool由缆,默認(rèn)值是false
對(duì)于一個(gè)枚舉類型,默認(rèn)值是0
對(duì)于一個(gè)結(jié)構(gòu)類型猾蒂,默認(rèn)值的設(shè)置就是把所有值類型的域都設(shè)置為它們各自的默認(rèn)值均唉,把所有的引用類型的域賦為空
1.1 簡(jiǎn)單類型
C#提供一套預(yù)定義的結(jié)構(gòu)類型叫做簡(jiǎn)單類型。簡(jiǎn)單類型用保留字定義肚菠,這些保留字僅僅是在System名字空間里預(yù)定義的結(jié)構(gòu)類型的化名舔箭。比如int是保留字,System蚊逢。Int32是在System名字空間中預(yù)定義類型层扶。一個(gè)簡(jiǎn)單類型和它化名的結(jié)構(gòu)類型是完全一樣的,也就是說寫int和寫System烙荷。Int32是一樣的镜会。簡(jiǎn)單類型主要有整型,浮點(diǎn)類型终抽,小數(shù)類型戳表,布爾類型桶至,字符型
1.1.1 整型
C#中支持9種整型:sbyte,byte匾旭,short镣屹,ushort,int价涝,uint女蜈,long,ulong和char色瘩。
Sbyte:代表有符號(hào)的8位整數(shù)伪窖,數(shù)值范圍從-128 ~ 127
Byte:代表無符號(hào)的8位整數(shù),數(shù)值范圍從0~255
Short:代表有符號(hào)的16位整數(shù)泞遗,范圍從-32768 ~ 32767
ushort:代表有符號(hào)的16位整數(shù)惰许,范圍從-32768 ~ 32767
Int:代表有符號(hào)的32位整數(shù),范圍從-2147483648 ~ 2147483648
uint:代表無符號(hào)的32位整數(shù)史辙,范圍從0 ~ 4294967295
Long:代表有符號(hào)的64位整數(shù)汹买,范圍從-9223372036854775808 ~ 9223372036854775808
Ulong:代表無符號(hào)的64位整數(shù),范圍從0 ~ 18446744073709551615聊倔。
char:代表無符號(hào)的16位整數(shù)晦毙,數(shù)值范圍從0~65535。
Char類型的可能值對(duì)應(yīng)于統(tǒng)一字符編碼標(biāo)準(zhǔn)(Unicode)的字符集耙蔑。
Char類型與其他整數(shù)類型相比有以下兩點(diǎn)不同之處:
a见妒,沒有其他類型到char類型的隱式轉(zhuǎn)換。即使是對(duì)于sbyte甸陌,byte和ushort這樣能完全使用char類型代表其值的類型须揣, sbyte,byte和ushort到char的隱式轉(zhuǎn)換也不存在钱豁。
b耻卡,char類型的常量必須被寫為字符形式,如果用整數(shù)形式牲尺,則必須帶有類型轉(zhuǎn)換前綴卵酪。比如(char)10賦值形式有三種:
char chsomechar="A";
char chsomechar="\x0065"; 十六進(jìn)制
char chsomechar="\u0065 ; unicode表示法
字符型中有下列轉(zhuǎn)義符:
1,'用來表示單引號(hào)
2谤碳,"用來表示雙引號(hào)
3溃卡,\ 用來表示反斜杠
4, \0 表示空字符
5蜒简, \a 用來表示感嘆號(hào)
6瘸羡, \b 用來表示退格
7, \f 用來表示換頁
8搓茬, \n 用來表示換行
9最铁, \r 用來表示回車
10讯赏, \t 用來表示水平tab
11, \v 用來表示垂直tab
1.1.2 浮點(diǎn)類型
C#支持兩種浮點(diǎn)類型:float和double冷尉。
Float型所能表示的值的范圍大約可以從1.510 -45~3.4 10 38漱挎,精確到小數(shù)點(diǎn)后面7位。
Double型所能表示的值的范圍大約可以從5.010 -324~1.7 10 308雀哨,精確到小數(shù)點(diǎn)后面15位或16位磕谅。
如果二元操作中的其中一個(gè)操作數(shù)為浮點(diǎn)類型,那么另外一個(gè)操作數(shù)是整型或浮點(diǎn)類型雾棺,運(yùn)算規(guī)則如下:
a膊夹,如果其中一個(gè)操作數(shù)是整型,則操作數(shù)被轉(zhuǎn)換為另一個(gè)操作數(shù)的浮點(diǎn)數(shù)類型;
b捌浩,如果操作數(shù)之一為double放刨,則另一操作數(shù)也被轉(zhuǎn)換成double類型,運(yùn)算以double類型的精度和取值范圍進(jìn)行尸饺,并且所得結(jié)果也為double類型;
c进统,否則,運(yùn)算至少將以float類型的取值范圍和精度進(jìn)行浪听,并且所得結(jié)果也為float型螟碎。
1.1.3 小數(shù)(decimal)類型
小數(shù)類型非常適用于金融和貨幣運(yùn)算。數(shù)值范圍從1.010 -28~7.9 10 28迹栓,精確到小數(shù)點(diǎn)后面28位掉分。如果二元操作中的其中一個(gè)操作數(shù)是小數(shù)類型,那么另外一個(gè)從操作數(shù)是整型或小數(shù)類型克伊。整型在運(yùn)算前被轉(zhuǎn)化為小數(shù)類型數(shù)酥郭。如果一個(gè)小數(shù)類型的算術(shù)運(yùn)算產(chǎn)生了一個(gè)對(duì)于小數(shù)類型的格式來說太小的值,操作的結(jié)果將會(huì)變成0愿吹。如果一個(gè)小數(shù)類型的算術(shù)運(yùn)算產(chǎn)生了一個(gè)對(duì)于小數(shù)類型的格式來說太大的值褥民,就會(huì)觸發(fā)溢出錯(cuò)誤。小數(shù)類型較浮點(diǎn)類型而言洗搂,具有更大的精確度,但是數(shù)值范圍相對(duì)小了很多载弄。將浮點(diǎn)類型的數(shù)向小數(shù)類型的數(shù)轉(zhuǎn)化時(shí)會(huì)產(chǎn)生溢出錯(cuò)誤耘拇,將小數(shù)類型的數(shù)向浮點(diǎn)類型的數(shù)轉(zhuǎn)化時(shí)會(huì)造成精確度的損失。因此宇攻,兩種類型不存在隱式或顯式轉(zhuǎn)換惫叛。布爾型:值為true或false。沒有標(biāo)準(zhǔn)能實(shí)現(xiàn)布爾類型和其他類型的轉(zhuǎn)換逞刷。
1.2 枚舉類型
枚舉類型的元素使用的類型只能是long嘉涌,int妻熊,short,byte仑最。默認(rèn)類型是int扔役。默認(rèn)第一個(gè)元素的值是0,每一個(gè)連續(xù)的元素按1遞增警医∫谛兀可以給元素直接賦值。如:

2.  {  
3.    January=1预皇,  
4.    February侈玄,   
5.    march=31  
6.  };  
7.  可以強(qiáng)制定義其他類型,如:  
8.  enum monthnames : byte  
9.  {  January 吟温,  
10.    February序仙,  
11.    March  
12.  };  

1.3結(jié)構(gòu)類型 結(jié)構(gòu)類型也是一種值類型,使用它的目的是用于創(chuàng)建小型的對(duì)象鲁豪,用以節(jié)省內(nèi)存潘悼。下面的例子表示一個(gè)使用byte類型的4個(gè)字段的IP地址。

1.  using System;  
2.  Struct IP //聲明結(jié)構(gòu)  
3.  {   
4.    public byte b1呈昔,b2挥等,b3,b4;  
5.  }  

7.  Class test  
8.  {  
9.      public static void Main()  
10.    {  
11.      IP myIP;  
12.      myIP.b1=192;  
13.      myIP.b2=168;  
14.      myIP.b3=1;  
15.      myIP.b4=101;  
16.      Console.Write("{0}.{1}堤尾。"肝劲, myIP.b1, myIP.b2);  
17.      Console.Write("{0}.{1}"郭宝, myIP.b3辞槐, myIP.b4);  
18.    }  
19.  }  

2 引用類型
引用類型包括類類型,接口類型粘室,代表類型和數(shù)組類型榄檬。
2.1 類類型
類 類型定義了一種數(shù)據(jù)結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)中包含了數(shù)據(jù)成員(如常量衔统,字段和事件等)鹿榜,函數(shù)成員(如方法,屬性锦爵,索引舱殿,操作,構(gòu)造函數(shù)和析構(gòu)函數(shù)等)和嵌套 類型险掀。支持繼承沪袭。
2.2 對(duì)象類型
對(duì)象類型是其他所有類型最終的基礎(chǔ)類型。在C#中每一種類型都直接或者間接的源于object這個(gè)類類型樟氢。
2.3 字符串類型
字符串類型是直接從object中繼承而來的密封類冈绊。String類型的值可以寫成字符串文字的形式侠鳄。
2.4 接口類型
一個(gè)接口聲明一個(gè)只有抽象成員的引用類型,接口僅僅存在方法標(biāo)志死宣,但沒有執(zhí)行代碼伟恶。當(dāng)定義一個(gè)類時(shí),如果類從接口派生十电,可以派生自多重接口;但是如果類從類派生知押,就只能從一個(gè)類派生。
聲明方法如例:

1.  interface iface  
2.  {  
3.    void showmyface();  
4.  }  

2.5 代表類型
代表引用一種靜態(tài)的方法或者對(duì)象實(shí)例鹃骂,引用該對(duì)象的實(shí)例方法台盯。與其接近的是c/c++中的指針,但指針只能訪問靜態(tài)的函數(shù)畏线,代表既能訪問靜態(tài)的方法静盅,也能訪問實(shí)例的方法。
2.6 數(shù)組
數(shù)組是包含一串變量的數(shù)據(jù)結(jié)構(gòu)寝殴。數(shù)組變量也稱做數(shù)組元素蒿叠,它們具有相同的類型,這種類型也稱做數(shù)組元素類型蚣常。數(shù)組的元素類型可以是任何類型市咽,包括數(shù)組類型。數(shù)組用下標(biāo)確定每一個(gè)數(shù)組元素的索引號(hào)抵蚊。只有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組施绎,多于一個(gè)下標(biāo)的數(shù)組稱為
多維數(shù)組。
例:int[] a={0贞绳,2谷醉,4,6冈闭,8}; 等價(jià)于int[] a=new int[] {0俱尼,2,4萎攒,6遇八,8};
也可以這樣初始化:a[0]=0; a[1]=2; a[2]=4; a[3]=6; a[4]=8;
int[] a; //int型的一維數(shù)組
int[,] a; //int型的二維數(shù)組
int[耍休,刃永,] a; //int型的三維數(shù)組
int[] []a; //int型的數(shù)組的數(shù)組
int[][][]a; //int型的數(shù)組的數(shù)組的數(shù)組
數(shù)組的每個(gè)維數(shù)的長(zhǎng)度不是數(shù)組類型的一部分,維數(shù)的長(zhǎng)度是在數(shù)組創(chuàng)建語句中指定的羹应,而不是在數(shù)組類型中
指定的,例如:
int[次屠,园匹,] a3=new int[10雳刺,20,30];
a3是是一個(gè)數(shù)組變量裸违, int[掖桦,,] 沒有指定數(shù)組的長(zhǎng)度供汛,數(shù)組創(chuàng)建語句new int[10枪汪,20,30]才指定怔昨。
下面的例子創(chuàng)建一個(gè)數(shù)組的數(shù)組:
int[][] J=new int[3][];
J[0]=new int[] {1雀久,2,3};
J[1]=new int[] {1趁舀,2赖捌,3,4矮烹,5越庇,6};
J[2]=new int[] {1,2奉狈,3卤唉,4,5仁期,6桑驱,7,8蟀拷,9};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碰纬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子问芬,更是在濱河造成了極大的恐慌悦析,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件此衅,死亡現(xiàn)場(chǎng)離奇詭異强戴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挡鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門骑歹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墨微,你說我怎么就攤上這事道媚。” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵最域,是天一觀的道長(zhǎng)谴分。 經(jīng)常有香客問我,道長(zhǎng)镀脂,這世上最難降的妖魔是什么牺蹄? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮薄翅,結(jié)果婚禮上沙兰,老公的妹妹穿的比我還像新娘。我一直安慰自己翘魄,他們只是感情好鼎天,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熟丸,像睡著了一般训措。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上光羞,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天绩鸣,我揣著相機(jī)與錄音,去河邊找鬼纱兑。 笑死呀闻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潜慎。 我是一名探鬼主播捡多,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼铐炫!你這毒婦竟也來了垒手?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤倒信,失蹤者是張志新(化名)和其女友劉穎科贬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳖悠,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡榜掌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乘综。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憎账。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卡辰,靈堂內(nèi)的尸體忽然破棺而出胞皱,到底是詐尸還是另有隱情邪意,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布反砌,位于F島的核電站抄罕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏于颖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一嚷兔、第九天 我趴在偏房一處隱蔽的房頂上張望森渐。 院中可真熱鬧,春花似錦冒晰、人聲如沸同衣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耐齐。三九已至,卻和暖如春蒋情,著一層夾襖步出監(jiān)牢的瞬間埠况,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工棵癣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辕翰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓狈谊,卻偏偏與公主長(zhǎng)得像喜命,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子河劝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348