面向对象 【类库】【委托】【is as运算符】
?
類(lèi)庫(kù)(Class Library)
.dll文件
類(lèi)庫(kù)字面意思就是類(lèi)的集合,里面有很多被編譯后的C#代碼,不可閱讀,不可修改,只能調(diào)用
類(lèi)庫(kù)是一個(gè)綜合性的面向?qū)ο蟮目芍赜妙?lèi)型集合,這些類(lèi)型包括:接口、抽象類(lèi)和具體類(lèi)。
類(lèi)庫(kù)可以解決一系列常見(jiàn)編程任務(wù)(包括諸如字符串管理、數(shù)據(jù)收集、數(shù)據(jù)庫(kù)連接以及文件訪問(wèn)等任務(wù))
還可以解決多種專(zhuān)用開(kāi)發(fā)任務(wù)(控制臺(tái)應(yīng)用程序、桌面應(yīng)用程序、WEB應(yīng)用程序等)。
?
寫(xiě)類(lèi)庫(kù)
? ? ? ? 新建項(xiàng)目——類(lèi)庫(kù)——用C#編寫(xiě)代碼(類(lèi)一定是 public )——生產(chǎn),生產(chǎn)解決方案——classlibrary/bin/Debug——.dll文件
引用
? ? ? 解決方案管理器——添加——瀏覽——找到類(lèi)庫(kù)文件——添加——屬性,復(fù)制本地:true —— 在命名空間引用。
?
通用變量: var
?
?
is?和?as?運(yùn)算符:
?
is ?是判斷某個(gè)對(duì)象是否是某種類(lèi)型,返回bool值
? ?某對(duì)象 ?is ?某類(lèi)型 ?? ? ? ?如果匹配上 ? ?返回true,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 否則false
?
as?是將某個(gè)對(duì)象轉(zhuǎn)換成某種類(lèi)型,返回的是對(duì)象或是null
? ? 如果轉(zhuǎn)換成功了, ? ?返回對(duì)象
? ? 如果轉(zhuǎn)換失敗了, ? ?不會(huì)報(bào)錯(cuò),而是返回一個(gè)null值
?
?
委托:delegate?
? ? ? ? ? ? ? ? ? ? ? ? ——方法的指針 ?
當(dāng)我們用delegate關(guān)鍵字聲明委托時(shí),編譯器自動(dòng)為我們生成類(lèi)。
?
委托是一個(gè)類(lèi),它定義了方法的類(lèi)型,
事件也是一種委托,但是是一種特殊的委托
?
使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來(lái)進(jìn)行傳遞,這種將方法動(dòng)態(tài)地賦給參數(shù)的做法,
可以避免在程序中大量使用If-Else(Switch)語(yǔ)句,同時(shí)使得程序具有更好的可擴(kuò)展性。
?
委托使用:
? ? ?定義一種委托類(lèi)型
? ? ?委托執(zhí)行時(shí)要調(diào)用方法
? ? ?定義一個(gè)委托實(shí)例
? ? ?委托實(shí)例的調(diào)用
?
結(jié)構(gòu)
? ?在類(lèi)下面,min 函數(shù)上面定義委托
?
? ?public ?delegate ?int ?FirstDel ( int a , int b )
————————— min 函數(shù) —————————
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --?FirstDel ?與 JiaJian 的格式一樣?
JiaJian ? ?jj ? = ? new ? JiaJian ( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 返回值相同 ? ? 都是 int ? ? ? ? ? ??
FirstDel ? td ? = ? jj.JiaFa ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?參數(shù)相同 ? ? ? ?都是兩個(gè) int?
? ? ? ................
? td ? = ?jj . JianFa ? ?
?
? ? ? ?—— 先設(shè)立了 ?JiaJian 類(lèi) 包含 JiaFa 、JianFa ?兩個(gè)方法
?
轉(zhuǎn)載于:https://www.cnblogs.com/Tanghongchang/p/6722811.html
總結(jié)
以上是生活随笔為你收集整理的面向对象 【类库】【委托】【is as运算符】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [luoguP2957] [USACO0
- 下一篇: Git小技巧 - 指令别名及使用Beyo