明明白白學C# 編程
試讀文檔下載:數組
第五章地址:http://pan.baidu.com/s/1bnnMAGv安全
第六章地址:http://pan.baidu.com/s/1bnD5cBH編程語言
前言函數
C#語言是微軟推出的一種面向對象程序開發語言。做爲微軟的主力語言,通過十多年的推廣,如今已經成爲主流語言之一。如今C#的應用領域,從原有的Windows普通程序開發和ASP.NET網站開發,已經擴展跨平臺的遊戲開發(Unity)、Android和iPhone手機應用開發(Xamarin)等領域。工具
在C#語言學習過程當中,因爲語言和文化差別,你們每每沒法正確理解編程語言,形成編程停留在簡單的Ctrl+C、Ctrl+V的模式。本教程從C#語言本質和編程理念上入手,詳細講解什麼是編程,如何編程,幫助你們真正掌握C#語言,跨入編程的殿堂。學習
1.學習所需的系統和工具網站
安裝Windows 7操做系統ui
安裝Visual Studio 2010this
2.學習建議
你們學習以前,能夠致信到xxxxxxxxxx,獲取相關的資料和軟件。若是你們在學習過程遇到問題,也能夠將問題發送到該郵箱。咱們儘量給你們解決。
目錄
第0章 準備工做 1
0.1 C#是什麼 1
0.1.1 什麼是語言 1
0.1.2 什麼是編程語言 2
0.1.3 編程語言的分類 2
0.1.4 什麼是C#編程語言 3
0.2 C#能夠作什麼 3
0.2.1 開發普通軟件 4
0.2.2 開發網站 4
0.2.3 開發遊戲--Unity 5
0.2.4 開發iOS/Android/Window Phone手機應用App 5
0.3 如何學習C# 6
0.3.1 搭建開發環境 6
0.3.2 創建第一個程序--Hello World 10
0.3.3 重要術語回顧 13
0.3.3 後續學習的路 13
第1章 數據表示 14
1.1 數據的直觀表示--字面量 14
1.1.1 整型字面量 14
1.1.2 浮點型字面量 16
1.2 文本字面量 16
1.2.1 字符和字符串的寫做規範 17
1.2.2 特殊的字符和字符串--轉義字符 17
1.2.3 更全面的表達方式--ASCII表 18
1.2.4 避免轉義字符--@ 19
1.2.5 字符串長度 19
1.3 數據的指表明示--變量 20
1.3.1 爲何使用指表明示 20
1.3.2 C#的命名規範 21
1.3.3 對變量命名 22
1.4 數據類型 23
1.4.1 數值類型 23
1.4.2 文本類型 24
1.4.3 其餘類型 25
1.5 定義一個變量 25
1.6 一種特殊的變量--常量 25
1.7 小結 26
第2章 變量和數值關聯 27
2.1 賦值 27
2.1.1 靜態賦值--固定值 27
2.1.2 動態賦值--可變值 27
2.2 驗證變量與數值的關聯 28
2.2.1 驗證的手段 28
2.2.2 驗證整數賦值 30
2.2.3 驗證明數賦值 31
2.2.4 驗證文本賦值 33
2.3 總結數據轉換規律 34
2.3.1 自動轉換 34
2.3.2 強制轉換 36
2.4 小結 37
第3章 運算--運算符與表達式 38
3.1 表達式 38
3.2 簡單賦值運算符 39
3.3 算術運算符 39
3.3.1 寫做規範 39
3.3.2 算術運算符 40
3.3.3 算術運算中的特殊狀況 41
3.4 特殊的算術運算符 43
3.4.1 操做數爲1的特殊運算--自增自減運算 43
3.4.2 操做數爲2的特殊運算--移位運算 46
3.4.3 位邏輯運算符 48
3.4.4 複合的賦值運算符 51
3.5 其餘運算符 53
3.6 運算符的優先級和結合順序 53
3.6.1 運算符的優先級 53
3.6.2 結合順序 55
3.7 小結 55
第4章 語句和語句塊 56
4.1 語句 56
4.1.1 如何構成語句 56
4.1.2 語句的種類 57
4.1.3 特殊的語句 59
4.2 語句塊的構成與做用 60
4.2.1 語句塊的構成 60
4.2.2 使用語句塊的好處 62
4.2.3 局部變量 62
4.3 語句的執行順序 63
4.3.1 順序執行的執行過程 63
4.3.2 單步調試 64
4.4 選擇執行 67
4.4.1 選擇執行的依據--條件 67
4.4.2 單值條件表達式 68
4.4.3 雙值條件表達式 68
4.4.4 多條件表達式 69
4.5 選擇執行的種類 71
4.5.1 單選擇if 71
4.5.2 雙選擇if…else 73
4.5.3 多選擇if…else…if 74
4.5.4 switch語句 76
4.6 循環執行 81
4.6.1 爲何要使用循環 81
4.6.2 當型循環while 82
4.6.3 直到型循環 84
4.6.4 更安全的循環--for循環 86
4.7 跳轉語句 87
4.7.1 continue語句只適用於循環 88
4.7.2 break語句可用於任何封閉的代碼 90
4.8 多層嵌套語句 91
4.8.1 選擇語句嵌套 91
4.8.2 循環語句嵌套 93
4.8.3 深層嵌套可使用goto語句 94
4.9 局部變量 95
4.9.1 局部變量的聲明 96
4.9.2 局部變量的做用域和生存週期 97
4.9 小結 98
第5章 函數 99
5.1 爲何有函數 99
5.1.1 拆分代碼 99
5.1.2 簡化代碼 102
5.2 函數的組成 104
5.2.1 語句塊標識--函數名 104
5.2.2 語句塊構成--函數體 105
5.2.3 語句塊結果--返回值 105
5.2.4 定義一個函數 108
5.3 函數的使用 109
5.4 函數通用化--參數 111
5.4.1 爲何有參數 111
5.4.2 普通參數--傳值 114
5.4.3 引用傳遞 116
5.4.4 傳出參數 118
5.5 特殊的函數 120
5.5.1 Main()函數 120
5.5.2 函數的重載 123
5.6 可供多個函數調用的變量 124
5.7 複雜的函數調用 125
5.6.1 遞歸調用 125
5.6.2 嵌套調用 128
5.8 小結 129
第6章 「類」 130
6.1 爲何須要類 130
6.1.1 簡潔代碼 130
6.1.2 大項目的分工合做的問題 133
6.1.3 標識符命名的問題 134
6.2 如何劃分類 135
6.3 如何定義類 137
6.3.1 代碼段標識--類名 138
6.3.2 代碼段--類體 139
6.3.3 定義一個類 140
6.3.4 Main()的歸屬地 141
6.4 類的使用 141
6.4.1 調用類自身的成員 141
6.4.2 調用另外一個類的成員 144
6.5 類之間的成員訪問--訪問修飾符 145
6.5.1 只有本身能訪問--私有 145
6.5.2 誰都能訪問--公有 146
6.5.3 爲類定義可訪問性 147
6.6 特殊的類的定義--嵌套類 152
6.6.1 嵌套類的定義和使用方法 152
6.6.2 嵌套類的訪問權限 155
6.6.3 總結 157
6.7 小結 157
第7章 對象 1
7.1 爲何要使用對象 1
7.2 如何定義對象 4
7.2.1 爲對象命名 4
7.2.2 定義一個對象 5
7.2.3 對象和類的區別 5
7.3 程序中成員的歸屬 6
7.3.1 字段的歸屬 6
7.3.2 方法的歸屬 7
7.4 如何使用對象 8
7.4.1 使用對象操做字段 8
7.4.2 使用對象操做方法 9
7.4.3 特殊的對象指代--this 10
7.5 特殊的類方法 12
7.5.1 構造方法 12
7.5.2 析構方法 19
7.5.3 比較構造方法與析構方法 20
7.6 小結 20
第8章 屬性 21
8.1 屬性的由來 21
8.2 屬性的構成 23
8.2.1 屬性的命名 23
8.2.2 屬性的類型和訪問修飾符 24
8.2.3 屬性的機制 24
8.2.4 定義一個屬性 26
8.3 屬性的應用 27
8.3.1 判斷賦值正確性 27
8.3.2 只讀/只寫屬性 29
8.3.3 方便代碼後期維護 31
8.3.4 同步處理相關字段 33
8.3.5 自動實現屬性 34
8.3.6 屬性不綁定字段 36
8.4 小結 37
第9章 繼承 38
9.1 繼承的由來 38
9.1.1 代碼重用、簡化代碼 38
9.1.2 擴展功能 40
9.1.3 繼承的定義格式 42
9.2 介於private與public之間的訪問權限--protected 43
9.3 子類從父類獲得了什麼 45
9.3.1 字段的可繼承性 45
9.3.2 方法的可繼承性 48
9.3.3 屬性的可繼承性 52
9.3.4 父類的靜態成員 56
9.4 子類從父類得不到構造方法和析構方法 57
9.4.1 子類不能繼承構造方法 57
9.4.2 隱式調用基類構造方法 58
9.4.3 顯式調用基類構造方法 59
9.4.4 建議爲基類聲明無參構造方法 62
9.4.5 析構方法 63
9.5 繼承的特色 64
9.5.1 單繼承 64
9.5.2 可傳遞 65
9.5.3 可添、不可刪 66
9.6 繼承的面向對象特性--重寫 66
9.6.1 類的虛擬成員 66
9.6.2 重寫虛成員 73
9.6.3 比較方法的重載、重寫與隱藏 76
9.7 小結 77
第10章 C#的特殊成員 78
10.1 繼承鏈引起的問題 78
10.2 虛方法在繼承鏈中的做用 80
10.2.1 千方百計解決繼承鏈引起的問題 81
10.2.2 密封方法--取消成員的虛效果 84
10.2.3 密封類 87
10.3 繼承中父類對子類添加限制 89
10.3.1 部分限制--抽象方法 89
10.3.2 限制升級--抽象類 92
10.3.3 使用抽象類 94
10.3.4 抽象類總結 97
10.4 抽象類的升級--接口 98
10.4.1 爲何要使用接口 98
10.4.2 接口的定義 98
10.4.3 接口的實現--接口繼承接口 101
10.4.4 接口的實現--類繼承接口 103
10.4.5 比較接口和抽象類 109
10.5 繼承中的特殊狀況--運算符重載 110
10.5.1 爲何重載運算符 110
10.5.2 如何重載運算符 110
10.5.3 一元運算符的重載 111
10.5.4 二元運算符的重載 115
10.5.5 轉換運算符的重載 121
10.5.6 不能重載的運算符 124
10.6 小結 126
第11章 委託和事件 127
11.1 爲何使用委託 127
11.2 委託的聲明和使用 128
11.2.1 聲明委託 128
11.2.2 建立委託對象 130
11.2.3 向委託註冊方法 131
11.2.4 使用委託 133
11.2.5 匿名方法 135
11.3 委託的合併與拆分 138
11.3.1 合併委託 139
11.3.2 合併委託的條件 144
11.3.3 拆分委託 146
11.4 委託的特殊使用--用於回調方法 147
11.5 匹配不精準--委託協變和逆變 148
11.6 一種特殊的委託--事件 152
11.6.1 事件的聲明 152
11.6.2 訂閱事件與取消訂閱事件 153
11.6.3 引起事件 155
11.6.4 使用事件 156
11.7 小結 161
第12章 特殊的系統類--數組和字符串 162
12.1 如何定義數組 162
12.1.1 初識數組 162
12.1.2 Array類 163
12.1.3 定義一個數組 164
12.1.4 初始化數組 166
12.1.5 遍歷數組 172
12.2 數組有哪些類型 176
12.2.1 一維數組 176
12.2.2 二維數組 176
12.2.3 多維數組 181
12.2.4 交錯數組 183
12.3 數組的特殊使用 192
12.3.1 做爲參數 192
12.3.2 做爲返回值 201
12.4 靜態數組 203
12.4.1 靜態數組的經常使用屬性概覽 203
12.4.2 靜態數組的經常使用方法概覽 203
12.4.3 獲取數組的秩 204
12.4.4 獲取數組長度 205
12.4.5 獲取元素的索引 211
12.4.6 獲取或設置元素的值 213
12.4.7 清除數組元素 216
12.4.8 複製數組 217
12.4.9 複製數組元素 219
12.4.10 反轉數組元素 222
12.4.11 對數組排序 224
12.5 動態數組 225
12.5.1 如何定義一個動態數組 226
12.5.2 經常使用屬性和方法 226
12.5.3 如何添加、刪除元素 227
12.5.4 清空數組 233
12.6 字符串的本質--String對象 234
12.6.1 瞭解String類 235
12.6.2 String類提供的字段、屬性和方法 235
12.6.3 獲取字符串長度 236
12.6.4 插入字符串 237
12.6.5 移除字符串 238
12.6.6 替換字符串 239
12.6.7 鏈接字符串 241
12.6.8 獲取子串 243
12.6.9 格式化字符串 244
12.7 可變字符串 250
12.7.1 瞭解StringBuilder類 250
12.7.2 StringBuilder類提供的屬性和方法 251
12.7.3 插入字符串 252
12.7.4 追加字符串 253
12.7.5 移除字符串 255
12.9 小結 256
第13章 結構和枚舉 257
13.1 認識結構 257
13.1.1 爲何要用結構 257
13.1.2 如何定義結構 258
13.1.3 結構能夠包含的成員 260
13.1.4 如何使用結構 263
13.2 結構的繼承特性 265
13.3 結構和類的區別 268
13.4 枚舉 271
13.4.1 爲何要使用枚舉 271
13.4.2 定義枚舉 272
13.4.3 如何使用枚舉 274
13.4.4 枚舉的基類Enum 276
13.4.5 枚舉的分類 279
13.5 使用枚舉須要注意一些問題 281
13.5.1 儘可能不給枚舉元素提供顯式的值 282
13.5.2 儘可能使得零是枚舉的有效值 282
13.6 小結 285
第14章 索引器 286
14.1 數組的啓發 286
14.1.1 只關注值 286
14.1.2 批量處理 287
14.2 構建簡單索引器 289
14.2.1 爲何要使用索引器 289
14.2.2 索引器的構成 290
14.2.3 數組字段應用 293
14.2.4 非數組字段應用 295
14.3 構建複雜索引器 298
14.3.1 字符串索引 299
14.3.2 多維索引器 301
14.3.3 設定索引器的上下限 304
14.4 索引器的擴展應用 307
14.4.1 索引器的重載 308
14.4.2 接口索引器 310
14.4.3 索引器在繼承中的應用 317
14.5 索引器對比 321
14.5.1 索引器VS數組 322
14.5.2 索引器VS屬性 322
14.5 小結 322