日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#之基本知识和语法3 - 数据类型

發布時間:2025/3/13 C# 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#之基本知识和语法3 - 数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:http://www.jb51.net/article/15507.htm

引用類型和值類型的區別


值類型引用類型
內存分配地點分配在棧中分配在堆中
效率效率高,不需要地址轉換效率低,需要進行地址轉換
內存回收使用完后,立即回收使用完后,不是立即回收,等待GC回收
賦值操作進行復制,創建一個同值新對象只是對原有對象的引用
函數參數與返回值是對象的復制是原有對象的引用,并不產生新的對象
類型擴展不易擴展容易擴展,方便與類型擴展

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異常

轉載于:https://www.cnblogs.com/gaoxu387/archive/2011/05/27/2059459.html

總結

以上是生活随笔為你收集整理的C#之基本知识和语法3 - 数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。