| 3、創(chuàng)建C# 類庫(kù) (Dll) |
| 以前在VC++中創(chuàng)建一個(gè)dll文件不能說(shuō)簡(jiǎn)單,但在Visual C# 中,這將同樣是輕而易舉的事情。下面的介紹分成兩部分:1、創(chuàng)建DLL,2、在客戶端測(cè)試dll。 |
| (1)創(chuàng)建DLL |
| 首先創(chuàng)建一個(gè)空的類庫(kù)工程。在VS.NET集成環(huán)境(IDE)中選擇“文件->新建->工程文件->Visual C# 工程->類庫(kù)”,點(diǎn)擊Browse(瀏覽)按鈕選擇工程文件名和相應(yīng)的目錄,再點(diǎn)擊 OK。 |
| 接著看看工程和它的相關(guān)文件。Solution Explorer(解決方案探測(cè)器)向工程中增加兩個(gè)C# 類,第一個(gè)是 AssemblyInfo.cs ,第二個(gè)是Class1.cs。我們不討論AssemblyInfo,重點(diǎn)介紹 Class1.cs。 |
|
| 雙擊Class1.cs,就能看到一個(gè)名稱空間mcMath。我們將在客戶機(jī)引用這個(gè)名稱空間以使用這個(gè)類庫(kù): |
| namespace mcMath |
| { |
| using System; |
| /// <summary> |
| /// Summary description for Class1. |
| /// </summary> |
| public class Class1 |
| { |
| public Class1() |
| { |
| // |
| // TODO: Add Constructor Logic here |
| // |
| } |
| } |
| } |
| 現(xiàn)在就可以Build(構(gòu)造)這個(gè)工程了。Build(構(gòu)造)完畢后,就會(huì)在工程文件的bin/debug 目錄中生成mcMath.dll文件。 |
| 增加一個(gè)方法 |
| 從View (視圖)菜單中打開ClassView(類視圖),開始只顯示Class1,沒(méi)有方法和屬性?,F(xiàn)在來(lái)增加一個(gè)方法和一個(gè)屬性。 |
| 用鼠標(biāo)右鍵單擊“Class1”,選擇“Add(增加)-> Add Method(增加方法)”,這時(shí)將彈出C# 方法生成向?qū)В?/TD> |
|
| 在這個(gè)窗口中增加方法名、存取類型、返回類型、參數(shù)以及注釋信息。使用Add(增加)和Remove(取消)按鈕可分別從參數(shù)列表中增加和取消參數(shù)。這里增加了一個(gè)方法long Add( long val1, long val2 ),它負(fù)責(zé)將兩個(gè)數(shù)字相加并返回和。 |
| 增加一個(gè)屬性 |
| 同理可以通過(guò)C#屬性生成向?qū)?,向類中增加一個(gè)屬性: |
|
| 增加了一個(gè)方法和一個(gè)屬性后, Class1變成下圖所示的樣子: |
|
| 仔細(xì)觀察這個(gè) Class1,你會(huì)發(fā)現(xiàn)C#的向?qū)С绦蛳蝾愔性黾恿巳缦聝蓚€(gè)函數(shù): |
| public long Add (long val1, long val2) |
| { |
| return 0; |
| } |
| ? |
| public bool Extra |
| { |
| get |
| { |
| return true; |
| } |
| set |
| { |
| } |
| } |
| 向類中增加代碼 |
| 這里把Class1修改成為 mcMathComp ,因?yàn)?Class1是個(gè)容易造成混淆的名字,當(dāng)想將這個(gè)類用在一個(gè)客戶應(yīng)用程序中時(shí)會(huì)造成問(wèn)題。下面的代碼對(duì)上面的做了些調(diào)整: |
| namespace mcMath |
| { |
| using System; |
| public class mcMathComp |
| { |
| private bool bTest = false; |
| public mcMathComp() |
| { |
| } |
| public long Add (long val1, long val2) |
| { |
| return val1 + val2; |
| } |
| public bool Extra |
| { |
| get |
| { |
| return bTest; |
| } |
| set |
| { |
| bTest = Extra ; |
| } |
| } |
| } |
| } |
| 構(gòu)造 dll |
| 選擇Build菜單創(chuàng)建dll文件,如果一切OK,就會(huì)在工程文件的 bindebug目錄生成dll文件。 |
| (2)在客戶端測(cè)試 dll |
| 在客戶端調(diào)用dll的方法和屬性也是非常簡(jiǎn)單的工作,請(qǐng)遵照下面的步驟執(zhí)行: |
| ① 創(chuàng)建控制臺(tái)應(yīng)用程序 |
| 在VS.NET IDE集成環(huán)境中選擇“文件-> 新建->工程文件->Visual C#工程文件->控制臺(tái)應(yīng)用程序”,最終將在這個(gè)控制臺(tái)應(yīng)用程序中測(cè)試dll。 |
| ② 增加名稱空間的引用 |
| 選擇“工程->添加引用”(Project->Add reference),然后瀏覽文件找到dll,點(diǎn)擊 Ok: |
|
| 引用添加向?qū)С绦驅(qū)⑾虍?dāng)前工程文件中增加對(duì)相關(guān)庫(kù)的引用: |
|
| ③ 調(diào)用mcMath名稱空間,創(chuàng)建 mcMathComp 的對(duì)象,并調(diào)用其方法和屬性。 |
| 現(xiàn)在距離調(diào)用組件的方法和屬性只有一步之遙了。請(qǐng)按照以下步驟進(jìn)行: |
| ●引用名稱空間:using mcMath |
| ●創(chuàng)建一個(gè) mcMathComp的對(duì)象:mcMathComp cls = new mcMathComp(); |
| ●調(diào)用方法和屬性 |
| mcMathComp cls = new mcMathComp(); |
| long lRes = cls.Add( 23, 40 ); |
| cls.Extra = false; |
| 以下是完整的工程文件代碼: |
| namespace mcClient |
| { |
| using System; |
| using mcMath; |
| /// <summary> |
| /// Summary description for Class1. |
| /// </summary> |
| public class Class1 |
| { |
| public Class1() |
| { |
| // |
| // TODO: Add Constructor Logic here |
| // |
| } |
| public static int Main(string[] args) |
| { |
| mcMathComp cls = new mcMathComp(); |
| long lRes = cls.Add( 23, 40 ); |
| cls.Extra = false; |
| return 0; |
| } |
| } |
| } |
| 請(qǐng)下載工程文件: mcMath.zip???????????????????(全文完) |
新聞熱點(diǎn)
疑難解答
圖片精選