




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、編程學(xué)習(xí):C#Visual Studio 進(jìn)階學(xué)習(xí)(版本 Visual Studio 2012)主講人:曹浩澤講授內(nèi)容: 前面課程的遺留問題 C#類庫的認(rèn)識和應(yīng)用 C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll文件)前面課程的遺留問題: 關(guān)于仿射變換矩陣的問題,之前理解得有錯(cuò)誤。 這個(gè)錯(cuò)誤并不是矩陣本身的錯(cuò)誤,是變換矩陣所指代的事物錯(cuò)誤。 三種參數(shù)(平移量、旋轉(zhuǎn)角、縮放倍數(shù))有兩種理解方式,一是指坐標(biāo)系的變化,二是指坐標(biāo)系內(nèi)的點(diǎn)的變化,所以之前的理解出現(xiàn)了問題,在旋轉(zhuǎn)的時(shí)候矩陣是按坐標(biāo)系旋轉(zhuǎn)表示的,而平移縮放是按照點(diǎn)的坐標(biāo)變換表示的,這兩個(gè)是不同。 兩種概念混到一起了,所以出現(xiàn)了錯(cuò)誤。C#類庫的認(rèn)識
2、和應(yīng)用 C#中的類庫,就是一個(gè)系列的類的集合,這個(gè)集合具有一個(gè)名字。 在一個(gè)類庫中的這些類,它們具有相似的特性,或者為了解決相似的功能而被集中到了一起。 類集中在類庫里,然后類庫存放在一起。需要用到某個(gè)類的功能的時(shí)候,比如在某個(gè)解決方案中需要用到某個(gè)類,此時(shí)只需要添加該類庫的引用,然后在我們寫代碼的類文件頭部使用using 即可在類代碼中進(jìn)行調(diào)用。 方便類的管理和調(diào)用。使開發(fā)程序的過程更加靈活,我們僅僅需要調(diào)用要使用的類庫即可。調(diào)用已有類庫的類來解決面前的問題,提高編程速度,就像是在抄捷徑,這正是面向?qū)ο蟮木琛#類庫的認(rèn)識和應(yīng)用 我們看一看Visual Studio經(jīng)常引用的類庫。C#類庫
3、的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 通過上面觀察可以發(fā)現(xiàn),.NET框架下提供的這些基礎(chǔ)的程序集都是動態(tài)鏈接庫(.dll)。 下面我們也模仿著開發(fā)一個(gè)這樣的動態(tài)鏈接庫(.dll),然后寫一個(gè)小程序來引用它,調(diào)用我們自己寫的動態(tài)庫中的類實(shí)現(xiàn)一些功能。 注意,開發(fā)的動態(tài)庫僅僅是類的集合,不具有獨(dú)立成為一個(gè)單獨(dú)程序運(yùn)行的能力,即缺少一個(gè).exe文件來運(yùn)行。這也是我們?yōu)槭裁匆賹懸粋€(gè)小程序的原因。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 創(chuàng)建新項(xiàng)目,文件新建項(xiàng)目,選中Windows然后選類庫。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 這個(gè)時(shí)候什么都不要做,我
4、們打開解決方案所在的文件夾看一看,里面都有些什么。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 解決方案中的Debug文件居然什么都沒有。 這是因?yàn)槲覀儎倓倓?chuàng)建解決方案,還沒有進(jìn)行過編譯。所以,Debug里面是空的,這是正常的。 這時(shí),回到Visual Studio 2012,我們點(diǎn)一下編譯。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 上面提示了,類庫沒有可以運(yùn)行的.exe程序來調(diào)用它。 不要著急,我們把類庫的代碼編寫好之后,再回過頭來寫一個(gè)可執(zhí)行程序.exe來試試咱們自己的動態(tài)庫。 下面我們看看剛剛的問題,Debug文件夾里面有東西了沒。C#類庫的開發(fā)
5、:開發(fā)動態(tài)鏈接庫(.dll) 我們已經(jīng)得到一個(gè)動態(tài)鏈接庫(.dll)了,只不過這個(gè)動態(tài)庫里面只有一個(gè)類class1,而且這個(gè)類class1里面還什么都沒有,不能實(shí)現(xiàn)什么功能。 下面我們來為class1添加一些代碼,讓這個(gè)類可以實(shí)現(xiàn)一些功能。 我們還以仿射變換為例子,只不過,這次我們要把平移、旋轉(zhuǎn)、縮放三個(gè)矩陣分開寫在三個(gè)方法中,讓這個(gè)類實(shí)現(xiàn)的功能更靈活。 在添加代碼之前,我們把class1.cs的名字重命名為Affine_Transformation.cs,方便我們后面調(diào)用的時(shí)候認(rèn)出并找到它。 重命名彈出的對話框中選擇“是”。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后在Affine_Tr
6、ansformation.cs的代碼塊(花括號中間)添加代碼。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 上次課我們的仿射變換在輸入旋轉(zhuǎn)參數(shù)的時(shí)候只能輸入單位是弧度的參數(shù),有點(diǎn)不方便,這里我們在這個(gè)動態(tài)鏈接庫里添加一個(gè)新的類,用來將角度參數(shù)轉(zhuǎn)換為弧度參數(shù),這樣我們輸入的時(shí)候更加方便。 添加一個(gè)類文件,名字命名為AngToRad。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后在AngToRad中添加實(shí)現(xiàn)這個(gè)功能的代碼。這里我們把它寫成靜態(tài)類,方便我們更好地了解靜態(tài)類、靜
7、態(tài)方法的特性。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 經(jīng)過上面的步驟我們的動態(tài)鏈接庫就做好了,現(xiàn)在我們就來做一個(gè)Windows窗體應(yīng)用程序(.exe)來調(diào)用一下它,看看是怎樣使用它的。 將我們的動態(tài)庫解決方案關(guān)閉,在菜單文件關(guān)閉解決方案。 新建一個(gè)項(xiàng)目,文件新建Windows窗體應(yīng)用程序。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 在設(shè)計(jì)頁面下系統(tǒng)為我們自動生成的Form1中,我們來添加一些控件,修改一下這些控件的Name屬性和Text屬性,另外把平移、旋轉(zhuǎn)、縮放三個(gè)button的Enabled屬性設(shè)置成為False,即在參數(shù)和坐標(biāo)輸入完成之前不讓使用這三個(gè)按鈕。 所有屬性的修改如截圖所示
8、。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后為我們的解決方案添加我們自己的動態(tài)鏈接庫,然后在代碼中調(diào)用它。 方法是在引用中右鍵單擊,然后添加引用。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 由于我們的動態(tài)庫是自定義的,還不在引用管理器中,所以在引用管理器中單擊右下角三個(gè)按鈕中的“瀏覽”按鈕,然后找到我們的動態(tài)庫文件(.dll),然后點(diǎn)擊“添加”按鈕。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)這個(gè)時(shí)候我們的動態(tài)庫就在瀏覽項(xiàng)中了,然后選中它,單擊“確定”。我們就把它添加到我們的解決方案了。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后打開Form1
9、.cs文件,在類代碼外面引用我們的動態(tài)庫,即這個(gè)Form1類將要使用到我們的動態(tài)庫。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后為Form1添加兩行代碼分別為一個(gè)存儲輸入點(diǎn)的數(shù)組,一個(gè)仿射變換的類對象。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后回到設(shè)計(jì)頁面,分別雙擊上面的按鈕,為這些按鈕添加點(diǎn)擊事件。然后為每個(gè)事件添加代碼。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 如此,我們的代碼就全部編寫完成了。運(yùn)行一下看看效果吧。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 這就是我們自己制作的仿射變換動態(tài)鏈接庫,是不是還不錯(cuò)呢。 我們這次編寫的仿射變換已經(jīng)可以由用戶自己選擇變換的步驟了,比上次課的程序要靈活很多。 另外我們自定義的這個(gè)動態(tài)庫也可以拿給別的編程人員使用。想象一下吧,當(dāng)你開發(fā)某個(gè)程序的時(shí)候需要使用到某一個(gè)處理方法的時(shí)候而正不想在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鋁顏料行業(yè)運(yùn)行現(xiàn)狀及發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國鋁冶煉市場競爭格局及前景趨勢預(yù)測報(bào)告
- 2025-2030年中國鎢行業(yè)未來投資預(yù)測發(fā)展戰(zhàn)略規(guī)劃分析報(bào)告
- 2025四川省建筑安全員《C證》考試題庫
- 2025-2030年中國過氧化鋅市場運(yùn)營動態(tài)及發(fā)展前景分析報(bào)告
- 2025-2030年中國車蠟行業(yè)市場運(yùn)行態(tài)勢及發(fā)展盈利分析報(bào)告
- 2025-2030年中國貿(mào)易融資前景趨勢及發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國調(diào)味香料市場發(fā)展前景及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國船舶制造行業(yè)發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國紙基覆銅板市場十三五規(guī)劃及投資風(fēng)險(xiǎn)評估報(bào)告
- 教師讀書分享《給教師的建議》課件
- 人民警察紀(jì)律條令試卷含答案
- 婚姻矛盾糾紛調(diào)解培訓(xùn)課件
- 漢語作為第二語言教學(xué)教學(xué)法教案(漢碩)
- 新能源技術(shù)(第二版)完整版課件(全)
- 課程改革與學(xué)前教育發(fā)展研究
- 普通昆蟲學(xué)-實(shí)驗(yàn)指導(dǎo)
- 中職對口升學(xué)養(yǎng)殖專業(yè)獸醫(yī)基礎(chǔ)習(xí)題集判斷題詳解
- 初中物理各單元思維導(dǎo)圖
- 氧化還原反應(yīng)和氧化還原平衡--ppt課件
- 國內(nèi)外旅游公共服務(wù)研究的文獻(xiàn)綜述
評論
0/150
提交評論