c#資料類型基礎_C#教程

來源:互聯網
上載者:User
  1. 實值型別
實值型別包括簡單實值型別和複合型類型。簡單實值型別可以再細分為整數類型、字元類型、實數類型和布爾類型;而複合類型則是簡單類型的複合,包括結構(struct)類型和枚舉(enum)類型。
整數類型

資料類型
說明
取值範圍
對應於 System 程式集中的結構
sbyte
有符號8位整數
-128-127
SByte
byte
無符號8位整數
0-255
Byte
short
有符號16位整數
-32768-32767
Int16
ushort
無符號16位整數
0-65535
UInt16
Int
有符號32位整數
-2147489648-2147483647
Int32
uint
無符號32位整數
0-42994967295
UInt32
long
有符號64位整數
-2 63-2 63
Int64
ulong
無符號64位整數
0-2 64
UInt64

字元類型
C#中採用Unicode字元集來表示字元類型。
實數類型

資料類型
說明
取值範圍
float
32位單精確度實數
1.5*10 -45-3.4*10 38
double
64位雙精確度實數
5.0*10 -324-1.7*10 308
demcimal
128位十進位實數
1.0*10 -28-7.9*10 28

布爾 (bool) 類型
取值只能是ture或者false,bool類型對應於.NET類庫中的System.Boolean結構。它在電腦中占4個位元組,即32位儲存空間。
結構類型
把一系列相關的資訊組織成為一個單一實體的過程,這就是建立一個結構的過程。
struct person
{
string m_name;    //姓名
int m_age;            //年齡
string m_sex;       //性別
}
枚舉類型
主要用於表示一個邏輯相關聯的項和組合。使用關鍵字enum來定義。
enum Weekday
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
2. 參考型別
參考型別包括類(class)、介面(interface)、委託(delegate)和數組(array)。
類( class
類是一組具有相同資料結構和相同操作的對象集合。建立類的執行個體必須使用關鍵字new來進行聲明。
(重點)類和結構之間的根本區別在於:結構是實值型別,而類是參考型別。對於實值型別,每個變數直接包含自身的所有資料,每建立一個變數,就在記憶體中開闢一塊地區;而對於參考型別,每個變數只儲存對目標儲存資料的引用,每建立一個變數,就增加一個指向目標資料的指標。
介面( interface
應用程式之間要相互調用,就必須事先達成一個協議,被調用的一方在協議中對自己所能提供的服務進行描述。在C#中,這個協議就是介面。介面定義中對方法的聲明,既不包括訪問限制修飾符,也不包括方法的執行代碼。
(注意)如果某個類繼承了一個介面,那麼它就要實現該介面所定義的服務。也就是實現介面中的方法。
委託
委託用語封裝某個方法的調用過程。
委託的使用過程分為3步:
1.定義      delegate void HelloDelegate();
2.執行個體化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say調用的方法
3.調用      hd();
數組
數組主要用於同一資料類型的資料進行批量處理。在C#中,數組需要初始化之後才能使用。
如:int[] array1 = new int[3]{2,3,5};
        int[] array1 = {2,3,5};
(注意)對規則多維陣列,調用Length屬性所得的值為整個數組的長度;而調用其GetLength方法,參數為0時得到數組第1維的長度,為1時得到數組第2維的長度,以此類推。而對於不規則多維陣列,調用Length屬性和以0為參數調用其GetLength方法,得到的都是第一維的長度。
3. 類型轉換
數值轉換
       數值的轉換有一個原則,即從低精度類型到高精度類型通常可以進行隱式轉換;而從高精度類型則必須進行顯式轉換。
       如:int i = 100;
              long j = 1000;
              j = i;        //隱式轉換,由低精度到高精度的轉換
              i = (int)j; //顯式轉換,有高精度到底精度的轉換
具體轉換過程中資訊的丟失就看各資料類型的精度了。(可以參考上面資料類型)
枚舉轉換
       枚舉類型與其他任何類型之間不存在隱式轉換。而和枚舉類型相關的顯式轉換包括:
1.從所有整數類型(包括字元類型)和實數類型到枚舉類型的顯式轉換;
2.從枚舉類型到所有整數類型(包括字元類型)和實數類型的顯式轉換;
3.從枚舉類型到枚舉類型的顯式轉換。
裝箱和拆箱轉換
主要是實值型別與參考型別之間相互轉換。
如:object obj 1= 10;
       int i = (int)obj;       //拆箱
       int j = 100;
       object obj2 = j;     //裝箱
轉換檢查
如果出現轉換失敗,程式就會拋出一個System.InvalidCastException異常
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.