亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#的類型、變量和值

2019-11-14 14:02:35
字體:
來源:轉載
供稿:網友

大學學了C#,工作也是使用C#,雖然在日常的開發中沒什么大的問題,但個人覺得在C#的理解還不是很清晰,所以決定花一定的時間來理一理學過的知識,順便革新下腦袋里的知識,因為坑爹的學校在教.net的時候,是.net 2.0版本的,有點老古董了。哎,個人覺得是老師只會拖控件,而且對于新的.net版本他們應該很難去接受,所以挑選教材的時候,也不愿意去挑選自己不熟悉的新的.net版本。好了,也不吐槽學校和老師了,還是自己努力吧,因為老師畢竟教你了他們知道的。

1,類型

C#是一種強類型的語言。每個變量和常量都有一個類型,每個計算為值的表達式也是如此。 每個方法簽名為每個輸入參數和返回值指定一個類型。 .NET Framework 類庫定義了一組內置數值類型以及表示各種邏輯構造的更復雜的類型,例如文件系統、網絡連接、對象的集合和數組及日期。 典型 C# 程序使用類庫中的類型,還使用為特定于該程序問題域的概念建模的用戶定義類型。

思考一下,類型是干什么用的。其實不難發現,我們總是把我們需要的東西存儲在用類型定義的變量上,如 int i=1,我們就把1存儲在i變量所在的存儲空間里,所以類型就是用來存儲信息的。

類型可以存儲的信息包括

  • 該類型的變量所需的存儲空間。

  • 該類型可以表示的最大值和最小值。

  • 該類型包含的成員(方法、字段、事件等)。

  • 該類型所繼承的基類型。

  • 將在運行時為其分配變量內存的位置。

  • 允許的運算種類行

當然我們使用類型的時候,是通過編譯器,編譯器為什么能夠執行,是因為執行的代碼是安全的,那么編譯器是怎么確保執行的代碼是類型安全的?例如,我們不可能把一個boolean類型的數據賦值給一個int類型的數據。這就可以想到:類型是存儲信息的,所以編譯器是通過類型存儲的信息確保代碼中執行的所有運算都是類型安全的。

其實編譯器將類型信息作為元數據嵌入到可執行文件中。 公共語言運行時 (CLR) 會在運行時使用該元數據,以進一步確保它在分配和回收內存時類型安全。

(1),在變量中聲明指定的類型

在程序中聲明變量或者常量的時候,必須指定類型或者使用關鍵字var讓編譯器可以識別到其類型。如下使用了一些類型和自定義的類型

Code

在程序中,類型可以在方法參數和指定返回值中使用,看下面代碼傳入參數定義為了int類型,返回值是string類型

Code

聲明了一個變量后,不能使用新類型重新對它進行聲明,也不能向它賦與它的聲明類型不兼容的值。例如,不能聲明 int,然后向它賦予布爾值 true。 但是,值可以轉換為其他類型,例如將值賦給新變量或者作為方法參數傳遞時。 編譯器會自動執行不會導致數據丟失的類型轉換。 可能導致數據丟失的轉換需要源代碼內有強制轉換。

2,內置類型

C#提供了一組標準的內置數值類型,用來表示整數、浮點值、布爾表達式、文本字符、十進制數值和其他類型。還有內置的string和object類型。我們可以在c#程序中可以很方便的使用這些類型

3,自定義類型

我們可以使用struck、class、interface和enum來創建我們自己自定義的類型。NET Framework 類庫本身是 Microsoft 提供的自定義類型的集合,您可以在自己的應用程序中使用它們。 默認情況下,類庫中最常用的類型在所有 C# 程序中均可用。 而對于其他類型,則僅當您顯式添加定義這些類型的程序集的項目引用后它們才可用。 編譯器擁有對該程序集的引用后,才可以在源代碼中聲明在該程序集中聲明的類型的變量(和常量)

4,通用類型

(1)值類型

值類型派生自System.Object和System.ValueType.派生自 System.ValueType 的類型在 CLR 中有特殊行為值類型變量直接包含它們的值,這意味著內存在聲明變量的任意上下文中都是以內聯方式分配的。 值類型變量沒有單獨的堆分配或垃圾回收開銷。

值類型分為兩個類別:struct和enum。

內置值類型具有可以訪問的屬性和方法。如 byte b=Byte.MaxValue。我們也可以向值類型賦值,如int i=1;

我們也可以使用struct來創建自己的自定義類型。如

Code

 

我們可以使用enum來定義一組常量,如

Code

 

枚舉類型主要是用來限制變量的可能性,如我們上面定義了枚舉number,包含了123,三個int型,在使用number時,只能使用這3個數,不可能出現其他的數。

(2)引用類型

定義為類、委托、數組或接口的類型是引用類型.在運行時,當您聲明引用類型的變量時,該變量會一直包含值 null,直至您使用 new 運算符顯式創建對象的實例,或者為該變量分配已經在其他位置使用 new 創建的對象, 如

Code

接口必須與實現它的類對象一起初始化

創建對象時,將在托管堆上分配內存,變量只保存對對象位置的引用。對于托管堆上的類型,在 CLR 的自動內存管理功能(稱為“垃圾回收”)對它們進行分配和回收時都需要系統開銷。 但是,也對垃圾回收進行了高度優化,在大多數情況下它不會引起性能問題

所有數組都是引用類型,即使其元素是值類型也不例外.數組是從 System.Array 類隱式派生的,但可以通過 C# 提供的簡化語法來聲明和使用它們,如下面的示例所示:

Code

 

引用類型完全支持繼承.創建類時,可以從沒有定義為 sealed 的任何其他接口或類繼承,而其他類則可以從您創建的類繼承并重寫虛方法

5,文本值類型

在 C# 中,文本值從編譯器接收類型。您可以通過在數字末尾追加一個字母來指定應如何類型化該數字文本。 例如,若要指定應按浮點數來處理值 4.56,則在該數字后追加一個“f”或“F”:4.56f。 如果沒有追加字母,則編譯器將為該文本推斷一個類型。

6,泛型類型

一個類型可以通過一個或多個類型參數聲明,而這些類型參數作為客戶端代碼在創建該類型的實例時提供的實際類型(具體類型)的占位符。這種類型稱為“泛型類型”。 例如,.NET Framework 類型 System.Collections.Generic.List<T> 有一個類型參數,按照約定該類型參數的名稱為 T。 在創建該類型的實例時,會指定列表將包含的對象的類型。如

List<int> list=new List<int>();

7,隱式類型

使用關鍵字 var隱式類型化一個局部變量(非類成員),該變量在編譯時仍然會接收一個類型,但該類型是由編譯器提供的

8,匿名類型

某些情況下為相關值的簡單集合創建命名類型是不方便的,因為這些相關值不準備在方法邊界外存儲或傳遞??梢詣摻涿愋蛠韺崿F此目的。

9,可以為null的類型

普通的值類型不能有 null 值。但是,可以通過在類型后面附加 ? 來創建可以為 null 值的類型。 例如,int? 是一個也可以具有 null值的 int 類型。 在 CTS 中,可以為 null 的類型是泛型結構類型 System.Nullable<T> 的實例。 在向其數值可能為 null 的數據庫傳入數據和從中傳出數據時,可以為 null 的類型尤其有用。

 

以上內容參考msdn的C#編程指南,僅僅為了學習,如有不妥,請指出。謝謝


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕国产日韩| 日韩欧美aⅴ综合网站发布| 在线观看日韩欧美| 成人免费观看a| 日韩免费精品视频| 韩剧1988免费观看全集| 日韩av免费看| 最近2019中文字幕一页二页| 国产国语刺激对白av不卡| 91在线直播亚洲| 亚洲精品电影网在线观看| 欧美中文字幕在线视频| 成人激情免费在线| 久久久久久噜噜噜久久久精品| 性色av一区二区三区| 久久视频精品在线| 亚洲性av在线| 亚洲电影免费在线观看| 久久夜色精品国产| 日韩中文第一页| 国产精品青草久久久久福利99| 亚洲欧美国产精品| 亚洲人成绝费网站色www| 隔壁老王国产在线精品| 欧美丰满少妇xxxxx做受| 91精品国产色综合久久不卡98| 青青在线视频一区二区三区| 91国内精品久久| 成人中文字幕在线观看| 68精品国产免费久久久久久婷婷| 亚洲国产精品国自产拍av秋霞| 久久精品成人欧美大片古装| 另类图片亚洲另类| 国产视频精品久久久| 最近2019中文字幕第三页视频| 亚洲男女性事视频| 日韩人体视频一二区| 日日噜噜噜夜夜爽亚洲精品| 在线播放国产一区中文字幕剧情欧美| 九九综合九九综合| 日本精品中文字幕| 97视频免费看| 中文字幕欧美日韩| 欧美性猛交xxxx乱大交| 亚洲成人网av| 亚洲欧美另类自拍| 精品一区二区电影| 国产精品夫妻激情| 国产精品嫩草影院一区二区| 国产精品自拍网| 亚洲专区在线视频| 日韩极品精品视频免费观看| 亚洲人成五月天| 欧美一区二区三区精品电影| 亚洲精品资源在线| 日韩有码片在线观看| 久久这里只有精品99| 亚洲少妇激情视频| 亚洲另类激情图| 麻豆精品精华液| 97人人模人人爽人人喊中文字| 久久偷看各类女兵18女厕嘘嘘| 国产欧美日韩精品专区| 日韩av中文字幕在线| 亚洲国产高清高潮精品美女| 久久在线视频在线| 国产一区二区色| 国产精品99久久久久久白浆小说| 欧美日韩精品在线视频| 亚洲国产精品女人久久久| 亚洲新声在线观看| 亚洲欧洲国产伦综合| 性欧美长视频免费观看不卡| 日韩av成人在线观看| 亚洲大胆人体在线| 久久在线观看视频| 欧美一性一乱一交一视频| 一本色道久久88综合日韩精品| 国产精品旅馆在线| 欧美日韩国产第一页| 中文字幕亚洲一区二区三区五十路| 久久亚洲精品国产亚洲老地址| 国产亚洲欧洲高清| 亚洲精品综合久久中文字幕| 亚洲图片欧洲图片av| 日韩av在线最新| 亚洲精品二三区| 最近2019年中文视频免费在线观看| 欧美理论电影网| 久久久国产一区| 国产精品美女在线| 国产一区二区三区在线看| zzijzzij亚洲日本成熟少妇| 久久久av电影| 国产精品9999| 国产精品麻豆va在线播放| 久久精品91久久久久久再现| 亚洲精品美女久久久久| 亚洲午夜精品久久久久久久久久久久| 秋霞av国产精品一区| 久久影院在线观看| 国产91热爆ts人妖在线| 久久国产精彩视频| 国产自产女人91一区在线观看| 日产日韩在线亚洲欧美| 日韩欧美成人免费视频| 91精品久久久久久久久久久| 久久久久久国产精品| 欧美另类极品videosbest最新版本| 欧美日韩国产色| 亚洲电影中文字幕| 尤物yw午夜国产精品视频明星| 韩国19禁主播vip福利视频| 中文字幕亚洲情99在线| 国产精品黄页免费高清在线观看| 91国产美女在线观看| 永久免费精品影视网站| 日韩中文字幕视频在线观看| 91久久精品日日躁夜夜躁国产| 精品亚洲夜色av98在线观看| 亚洲人成电影在线观看天堂色| 欧美成人精品在线播放| 91久久精品一区| 精品久久久久久中文字幕| 亚洲成年人在线播放| 亚洲国产精品人久久电影| 欧美成人免费视频| 欧美日韩综合视频网址| 久久五月天综合| 欧美日韩爱爱视频| 国产精品狼人色视频一区| 国产成人免费av电影| 亚洲精品福利免费在线观看| 疯狂做受xxxx高潮欧美日本| 91免费看国产| 一本大道香蕉久在线播放29| 97在线观看免费高清| 夜夜嗨av一区二区三区四区| 亚洲精品久久久久久久久久久久| xx视频.9999.com| 欧美极品欧美精品欧美视频| 九九热最新视频//这里只有精品| 亚洲欧美一区二区三区情侣bbw| 中文字幕av一区中文字幕天堂| 欧美大秀在线观看| 97视频国产在线| 国产美女被下药99| 在线中文字幕日韩| 亚洲2020天天堂在线观看| 国产精品美乳一区二区免费| 久久视频中文字幕| 成人a级免费视频| 欧美精品xxx| 国产精品中文字幕在线观看| 日本一区二区三区在线播放| 97视频在线观看免费高清完整版在线观看| 日韩视频欧美视频| 亚洲视频视频在线| 97国产在线视频| xxx一区二区| 亚洲精品久久久久久久久久久久久| 国产一区二区三区在线观看视频| 在线观看欧美日韩| 亚洲精品国产综合区久久久久久久|