C#語(yǔ)言入門詳解

008-009 方法的定義、調(diào)用與調(diào)試
1.方法的由來
a.方法(Method)的前身是C/C++的函數(shù)(function)
- 方法是面向?qū)ο蟮姆懂牳拍?,在非面向?qū)ο笳Z(yǔ)言中仍然稱函數(shù)。
b.方法永遠(yuǎn)都是類(或結(jié)構(gòu)體)的成員
c.方法是類(或結(jié)構(gòu)體)最基本的成員支一
d.需要方法和函數(shù)的原因
2. 方法的定義與調(diào)用
a. 聲明方法的語(yǔ)法詳解
b. 方法的命名規(guī)范
方法=方法頭+方法體,
書寫規(guī)范:??大寫,大駝峰??動(dòng)詞或動(dòng)詞短語(yǔ)作為名字(帕斯卡命名法)
c. 靜態(tài)方法和實(shí)例方法
靜態(tài)方法隸屬類class,實(shí)例方法則不是
d.調(diào)用方法
010~012操作符的原理和使用
操作符、表達(dá)式和語(yǔ)句都是為方法服務(wù),語(yǔ)句就是為了組成方法體(算法邏輯)
1. 操作符概覽
a.操作符 Operator,也叫“運(yùn)算符”。
b.操作符是用來操作數(shù)據(jù)的,該數(shù)據(jù)稱為“操作數(shù)” Operand
2. 操作符的本質(zhì)
a. 操作符的本質(zhì)是函數(shù)(即算法)的“簡(jiǎn)記法”
b. 操作符不能脫離與他關(guān)聯(lián)的數(shù)據(jù)類型
- 可以說操作符就是與固定數(shù)據(jù)類型相關(guān)聯(lián)的一套基本算法的簡(jiǎn)記法。
- 自定義數(shù)據(jù)類型創(chuàng)建操作符
c.運(yùn)算優(yōu)先級(jí)
- 表格中優(yōu)先級(jí)從上到下降低,同行優(yōu)先級(jí)相同。
- 賦值操作符最晚運(yùn)算,從右往左運(yùn)算,其它運(yùn)算符從左往右運(yùn)算
2. 操作符的本質(zhì)
a. 操作符的本質(zhì)是函數(shù)(即算法)的“簡(jiǎn)記法”
b. 操作符不能脫離與他關(guān)聯(lián)的數(shù)據(jù)類型
- 可以說操作符就是與固定數(shù)據(jù)類型相關(guān)聯(lián)的一套基本算法的簡(jiǎn)記法。
- 自定義數(shù)據(jù)類型創(chuàng)建操作符
3. 操作符的優(yōu)先級(jí)
a. 操作符的優(yōu)先級(jí)
- 可以使用圓括號(hào)提高被括起來表達(dá)式的優(yōu)先級(jí)
- 圓括號(hào)可以嵌套
- 不像數(shù)據(jù)里由方括號(hào)和花括號(hào),在C#語(yǔ)言里"[]"與“{}”有專門的用途
b. 同優(yōu)先級(jí)操作符的運(yùn)算順序
- 除了帶有賦值功能的操作符,同優(yōu)先級(jí)操作符都是由左向右進(jìn)行運(yùn)算
- 帶有賦值功能的操作符的運(yùn)算順序是由右向左
- 與數(shù)學(xué)運(yùn)算不同,計(jì)算機(jī)語(yǔ)言的同優(yōu)先級(jí)運(yùn)算沒有“結(jié)合律”
4. 同級(jí)操作符的運(yùn)算順序
5. 各類操作符的示例
a基本操作符
b 一元操作符
這種操作符,只有1個(gè)操作數(shù)。又稱“單目操作符”
c類型轉(zhuǎn)換
c1. 隱式(implicit)類型轉(zhuǎn)換
- 代碼中不用明確告訴值的數(shù)據(jù)類型轉(zhuǎn)換成另一種數(shù)據(jù)類型,編譯器自動(dòng)轉(zhuǎn)換
- 子類向父類的轉(zhuǎn)換
- 裝箱(類型章節(jié)講過)
c2. 顯式(explicit)類型轉(zhuǎn)換
寫代碼時(shí),明確告訴值的數(shù)據(jù)類型轉(zhuǎn)換成另一種數(shù)據(jù)類型,編譯器自動(dòng)轉(zhuǎn)換
- 可能丟失精度(甚至錯(cuò)誤)的轉(zhuǎn)換,即cast(鑄造的意思),操作符(A)b
- 拆箱
- 使用Convert類
- ToString方法與各類數(shù)據(jù)的Parse/TryParse方法
c3.自定義類型轉(zhuǎn)換操作符 (T)x
d 乘法操作符 和 加法操作符
e 其它類型操作符
- 邏輯“與” &、邏輯XOR ^、邏輯OR |
- 條件And &&、條件OR ||
f 賦值和lambda表達(dá)式
017 字段、屬性、索引器、常量
一、字段 field
1. 字段的定義
下面案例通過靜態(tài)字段來表示類型當(dāng)前的狀態(tài)。
下面用for循環(huán)代替實(shí)例化。
2.字段的聲明
語(yǔ)法:特性opt 1個(gè)或多個(gè)修飾符 類型 變量聲明器 ;
3.字段的初始值
4.只讀字段
二、屬性
1.什么是屬性
1.1 屬性(property)定義
- 一種用于訪問 對(duì)象/類型 的特征的成員,特征反映了狀態(tài)。
1.2 屬性是字段的自然擴(kuò)展
下面展示字段一步一步演化成屬性的.
1.3 屬性由Get/Set方法進(jìn)化而來
1.4 “語(yǔ)法糖”
- 屬性背后的秘密:語(yǔ)法糖是在編程語(yǔ)言中,一小段簡(jiǎn)單邏輯是為了隱藏復(fù)雜的邏輯,目的就是為了方便程序的編寫
2. 屬性的聲明
2.1 完整聲明
語(yǔ)法:特性opt 修飾符opt 類型 屬性名字 { get set}
2.2 簡(jiǎn)略聲明
簡(jiǎn)略聲明的屬性功能上與共有的字段是完全一樣的,也就是說可能值不受保護(hù),可能把非法值賦給屬性,帶有這種屬性的類用來傳遞數(shù)據(jù)
2.3 動(dòng)態(tài)計(jì)算的屬性
2.4 注意實(shí)例屬性和靜態(tài)屬性
靜態(tài)屬性:用statci修飾的屬性,隸屬于數(shù)據(jù)類型
2.5 屬性的名字一定是名詞
2.6 只讀屬性
只有g(shù)etter,沒有setter
3. 屬性與字段的關(guān)系
- 一般情況下,他們用于表示實(shí)體(對(duì)象或類型)的狀態(tài)
- 屬性大多情況下是字段的包裝器 wrapper
- 建議:永遠(yuǎn)使用屬性而不是字段來暴露數(shù)據(jù),即字段永遠(yuǎn)是被保護(hù)的protected 或 private
三、索引器
1. 什么是索引器
選修,用途不多。
018 參數(shù)——傳值、輸出、引用、數(shù)據(jù)具名、可選參數(shù),this參數(shù)
一、傳值參數(shù)——傳遞值類型參數(shù)
1.值參數(shù)
1.1傳值參數(shù)→值類型
1.2 傳值參數(shù)→引用類型,并新創(chuàng)建對(duì)象
1.3 傳值參數(shù)→引用類型,只操作對(duì)象,不創(chuàng)建對(duì)象
二、引用參數(shù)
1.定義
2. 引用參數(shù)圖解
2.1引用參數(shù)→值類型
2.2. 引用參數(shù)→引用類型,創(chuàng)建新對(duì)象
三、輸出形參
1.定義
2.輸出參數(shù)圖示
2.1輸出參數(shù)→值類型
2.2輸出類型→引用類型
四、數(shù)組參數(shù)
1.必須時(shí)形參列表中的最后一個(gè),由params修飾
五、具名參數(shù)
六、可選參數(shù)
七、擴(kuò)展方法(this參數(shù))
019 委托詳解
一、什么是委托
1.委托的定義
2.一切皆地址
3.直接調(diào)用與間接調(diào)用
4.委托的簡(jiǎn)單使用
二、委托的聲明(自定義委托)
1.委托是一種類 class
2.委托的聲明方式與一般的類不同.
三、委托的使用
1.實(shí)例:把方法當(dāng)作參數(shù)傳給另一個(gè)方法
1.1 模板方法
1.2 回調(diào)(callback)方法
2. 注意
難精通、易使用、功能強(qiáng)大的東西,一旦被濫用后果非常嚴(yán)重。
四、委托的高級(jí)使用
1.多波(multicast)委托
2. 隱式異步調(diào)用
2.1 同步與異步的簡(jiǎn)介
2.2 同步調(diào)用與異步調(diào)用的對(duì)比
2.3 隱式多線程 與 顯示多線程
020-022 事件詳解
一、了解事件概念
1.定義:Event
2.角色:使對(duì)象或類具備的通知能力的成員
3.使用:用于對(duì)象或類之間的動(dòng)作協(xié)調(diào)與信息傳遞(消息推送給)
4.原理:事件模型Event Model中的兩個(gè)“5”
- 事件模型在構(gòu)建運(yùn)作的“5”個(gè)步驟:
- “發(fā)生→響應(yīng)”的“5”個(gè)部分
5.提示
二、事件的應(yīng)用
1.實(shí)例演示
2.事件E模型的五個(gè)組成部分
三、深入理解事件
四、事件的聲明
4.1 語(yǔ)法
4.1.1 完整聲明
023 委托,Lambda,LINQ串講
一、委托
1.什么是委托
023 類
一、什么式類
026 重寫、多態(tài)
027接口、抽象類
029 接口
030 接口隔離 反射特性 依賴注入
030 泛型,partial類,枚舉,結(jié)構(gòu)
一、泛型 無(wú)處不在