国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#數據類型基礎

2019-10-29 21:48:20
字體:
來源:轉載
供稿:網友
C#里面的數據類型分為兩種:值類型和引用類型。
 
 
 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位整數
-263-263
Int64
ulong
無符號64位整數
0-264
UInt64

 

 
字符類型
C#中采用Unicode字符集來表示字符類型。
 
實數類型

 

數據類型
說明
取值范圍
float
32位單精度實數
1.5*10-45-3.4*1038
double
64位雙精度實數
5.0*10-324-1.7*10308
demcimal
128位十進制實數
1.0*10-28-7.9*1028

 

 
布爾(bool)類型
取值只能是ture或者falsebool類型對應于.NET類庫中的System.Boolean結構。它在計算機中占4個字節,即32位存儲空間。
 
結構類型
把一系列相關的信息組織成為一個單一實體的過程,這就是創建一個結構的過程。
struct person
{
string m_name;    //姓名
int m_age;            //年齡
string m_sex;       //性別
}
 
枚舉類型
主要用于表示一個邏輯相關聯的項和組合。使用關鍵字enum來定義。
enum Weekday
{
SundayMondayTuesdayWednesdayThursdayFridaySaturday
}
 
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異常

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 体育| 普宁市| 正宁县| 桑植县| 武功县| 库尔勒市| 阳曲县| 孟州市| 阳城县| 乃东县| 高平市| 定陶县| 奈曼旗| 德清县| 金昌市| 阳曲县| 南投县| 沙雅县| 册亨县| 无为县| 萝北县| 徐水县| 沾益县| 南城县| 黑龙江省| 唐海县| 弋阳县| 汶上县| 织金县| 门头沟区| 黄龙县| 丰原市| 科技| 鄂州市| 固安县| 通城县| 益阳市| 宜丰县| 浮山县| 龙口市| 阳东县|