版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、編程學(xué)習(xí):C#Visual Studio 進階學(xué)習(xí)(版本 Visual Studio 2012)主講人:曹浩澤講授內(nèi)容: 前面課程的遺留問題 C#類庫的認識和應(yīng)用 C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll文件)前面課程的遺留問題: 關(guān)于仿射變換矩陣的問題,之前理解得有錯誤。 這個錯誤并不是矩陣本身的錯誤,是變換矩陣所指代的事物錯誤。 三種參數(shù)(平移量、旋轉(zhuǎn)角、縮放倍數(shù))有兩種理解方式,一是指坐標(biāo)系的變化,二是指坐標(biāo)系內(nèi)的點的變化,所以之前的理解出現(xiàn)了問題,在旋轉(zhuǎn)的時候矩陣是按坐標(biāo)系旋轉(zhuǎn)表示的,而平移縮放是按照點的坐標(biāo)變換表示的,這兩個是不同。 兩種概念混到一起了,所以出現(xiàn)了錯誤。C#類庫的認識
2、和應(yīng)用 C#中的類庫,就是一個系列的類的集合,這個集合具有一個名字。 在一個類庫中的這些類,它們具有相似的特性,或者為了解決相似的功能而被集中到了一起。 類集中在類庫里,然后類庫存放在一起。需要用到某個類的功能的時候,比如在某個解決方案中需要用到某個類,此時只需要添加該類庫的引用,然后在我們寫代碼的類文件頭部使用using 即可在類代碼中進行調(diào)用。 方便類的管理和調(diào)用。使開發(fā)程序的過程更加靈活,我們僅僅需要調(diào)用要使用的類庫即可。調(diào)用已有類庫的類來解決面前的問題,提高編程速度,就像是在抄捷徑,這正是面向?qū)ο蟮木琛#類庫的認識和應(yīng)用 我們看一看Visual Studio經(jīng)常引用的類庫。C#類庫
3、的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 通過上面觀察可以發(fā)現(xiàn),.NET框架下提供的這些基礎(chǔ)的程序集都是動態(tài)鏈接庫(.dll)。 下面我們也模仿著開發(fā)一個這樣的動態(tài)鏈接庫(.dll),然后寫一個小程序來引用它,調(diào)用我們自己寫的動態(tài)庫中的類實現(xiàn)一些功能。 注意,開發(fā)的動態(tài)庫僅僅是類的集合,不具有獨立成為一個單獨程序運行的能力,即缺少一個.exe文件來運行。這也是我們?yōu)槭裁匆賹懸粋€小程序的原因。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 創(chuàng)建新項目,文件新建項目,選中Windows然后選類庫。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 這個時候什么都不要做,我
4、們打開解決方案所在的文件夾看一看,里面都有些什么。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 解決方案中的Debug文件居然什么都沒有。 這是因為我們剛剛創(chuàng)建解決方案,還沒有進行過編譯。所以,Debug里面是空的,這是正常的。 這時,回到Visual Studio 2012,我們點一下編譯。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 上面提示了,類庫沒有可以運行的.exe程序來調(diào)用它。 不要著急,我們把類庫的代碼編寫好之后,再回過頭來寫一個可執(zhí)行程序.exe來試試咱們自己的動態(tài)庫。 下面我們看看剛剛的問題,Debug文件夾里面有東西了沒。C#類庫的開發(fā)
5、:開發(fā)動態(tài)鏈接庫(.dll) 我們已經(jīng)得到一個動態(tài)鏈接庫(.dll)了,只不過這個動態(tài)庫里面只有一個類class1,而且這個類class1里面還什么都沒有,不能實現(xiàn)什么功能。 下面我們來為class1添加一些代碼,讓這個類可以實現(xiàn)一些功能。 我們還以仿射變換為例子,只不過,這次我們要把平移、旋轉(zhuǎn)、縮放三個矩陣分開寫在三個方法中,讓這個類實現(xiàn)的功能更靈活。 在添加代碼之前,我們把class1.cs的名字重命名為Affine_Transformation.cs,方便我們后面調(diào)用的時候認出并找到它。 重命名彈出的對話框中選擇“是”。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ù),有點不方便,這里我們在這個動態(tài)鏈接庫里添加一個新的類,用來將角度參數(shù)轉(zhuǎn)換為弧度參數(shù),這樣我們輸入的時候更加方便。 添加一個類文件,名字命名為AngToRad。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后在AngToRad中添加實現(xiàn)這個功能的代碼。這里我們把它寫成靜態(tài)類,方便我們更好地了解靜態(tài)類、靜
7、態(tài)方法的特性。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 經(jīng)過上面的步驟我們的動態(tài)鏈接庫就做好了,現(xiàn)在我們就來做一個Windows窗體應(yīng)用程序(.exe)來調(diào)用一下它,看看是怎樣使用它的。 將我們的動態(tài)庫解決方案關(guān)閉,在菜單文件關(guān)閉解決方案。 新建一個項目,文件新建Windows窗體應(yīng)用程序。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 在設(shè)計頁面下系統(tǒng)為我們自動生成的Form1中,我們來添加一些控件,修改一下這些控件的Name屬性和Text屬性,另外把平移、旋轉(zhuǎn)、縮放三個button的Enabled屬性設(shè)置成為False,即在參數(shù)和坐標(biāo)輸入完成之前不讓使用這三個按鈕。 所有屬性的修改如截圖所示
8、。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后為我們的解決方案添加我們自己的動態(tài)鏈接庫,然后在代碼中調(diào)用它。 方法是在引用中右鍵單擊,然后添加引用。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 由于我們的動態(tài)庫是自定義的,還不在引用管理器中,所以在引用管理器中單擊右下角三個按鈕中的“瀏覽”按鈕,然后找到我們的動態(tài)庫文件(.dll),然后點擊“添加”按鈕。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)這個時候我們的動態(tài)庫就在瀏覽項中了,然后選中它,單擊“確定”。我們就把它添加到我們的解決方案了。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll)C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后打開Form1
9、.cs文件,在類代碼外面引用我們的動態(tài)庫,即這個Form1類將要使用到我們的動態(tài)庫。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后為Form1添加兩行代碼分別為一個存儲輸入點的數(shù)組,一個仿射變換的類對象。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 然后回到設(shè)計頁面,分別雙擊上面的按鈕,為這些按鈕添加點擊事件。然后為每個事件添加代碼。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) 如此,我們的代碼就全部編寫完成了。運行一下看看效果吧。C#類庫的開發(fā):開發(fā)動態(tài)鏈接庫(.dll) 這就是我們自己制作的仿射變換動態(tài)鏈接庫,是不是還不錯呢。 我們這次編寫的仿射變換已經(jīng)可以由用戶自己選擇變換的步驟了,比上次課的程序要靈活很多。 另外我們自定義的這個動態(tài)庫也可以拿給別的編程人員使用。想象一下吧,當(dāng)你開發(fā)某個程序的時候需要使用到某一個處理方法的時候而正不想在
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 艾滋病預(yù)防知識調(diào)查報告
- 特應(yīng)性皮炎治療指南2024
- 膽道蛔蟲病護理查房
- 小班防疫安全消息
- 大班科學(xué)活動找種子
- 青春期畢業(yè)晚會
- 別說我小教案及反思
- 化學(xué)反應(yīng)速率與限度說課稿
- 紅綠燈說課稿中班
- 汽車4S店元旦活動
- 快消市場全域發(fā)展圖景和趨勢展望
- 2024年公路建設(shè):泥漿外運及環(huán)保處理合同
- 江蘇省蘇州市吳中區(qū)2024-2025學(xué)年八年級上學(xué)期期中考試歷史卷(含答案)
- 2024-2025學(xué)年上學(xué)期期中教育學(xué)業(yè)質(zhì)量監(jiān)測九年級歷史試卷
- 2024年山東省公務(wù)員錄用考試《行測》試題及答案解析
- 【2024-2025】學(xué)年一上語文期中素養(yǎng)測評基礎(chǔ)卷一
- 小兒血液透析的護理
- 人教版(2024新版)七年級上冊數(shù)學(xué)期中模擬檢測試卷(含答案)
- 2024人工智能技術(shù)在內(nèi)容創(chuàng)作和營銷領(lǐng)域的應(yīng)用及影響分析報告
- 《籃球原地運球 行進間運球》教案(共三篇)
- 2024-2030年中國裸眼3D行業(yè)市場全景調(diào)研與競爭格局分析報告
評論
0/150
提交評論