c#學習筆記----自定義類庫及反編譯


2.1 自定義類庫

  自定義類庫能封裝核心代碼,保證核心的代碼在交付給客戶時,不讓客戶泄露,同時也防止非專業人士的私自更改。另外能提高程序代碼的復用率,使得代碼量減少,程序結構簡潔。自定義類庫就是程序中常見的.dll文件。

  新建一個people的自定義類庫,其實吧,就和java中的打包一樣的。

  類庫和可移植類庫的區別在於,類庫是用於Windows pc機的,可移植類庫可用於其他平台,比如Windows的手機等。新建一個以pelple為命名空間的類庫Class1並給2個屬性和一個方法用於測試。

  

 1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5 using System.Threading.Tasks;  6 
 7 namespace people  8 {  9     public class Class1 10  { 11         //屬性
12         private string name; 13         private int age; 14         //構造方法
15         public Class1() {//無參構造 
16  } 17         public Class1(string name, int age) { 18             this.name = name; 19             this.age = age; 20  } 21 
22 
23         //get/set方法
24         public string class1Name { 25             get { 26                 return name; 27  } 28             set { 29                 name = value; 30  } 31  } 32 
33         public int class1Age { 34             get { 35                 return age; 36  } 37 
38             set { 39                 age = value; 40  } 41         
42  } 43        //自定義方法
44         public String sayHello() { 45             string rtg; 46             Class1 c=new Class1(); 47             c.name = "wuxinwuxin"; 48             c.age = 18; 49             rtg = "大家好!我是" + c.age + "" + c.name; 50             return rtg; 51  } 52 
53 
54  } 55 }

   選中項目右鍵----》生成(U)即可。找到項目所在的debug文件夾,可以找到生成的類庫。

  新建一個項目引用類庫。找到項目下的應用,右鍵----》添加引用。

 

  引用添加成功后,引用表里除了.NET自帶的類庫之外,會有一個people的類庫。

  測試代碼如下:

 1 using System;  2 using System.Collections.Generic;  3 using System.Data;  4 using System.Drawing;  5 using System.Linq;  6 using System.Reflection;  7 using System.Text;  8 using System.Threading.Tasks;  9 using System.Windows.Forms; 10 using people;//自定義類庫
11 
12  private void button4_Click(object sender, EventArgs e) 13  { 14             Class1 c = new Class1(); 15             c.class1Name = "測試"; 16             textBox1.Text = c.class1Name ; 17             string rtg = c.sayHello(); 18             textBox1.Text += "/*/*/*/* " + rtg; 19             
20         }

顯示如下:

  到此以后其他程序需要用到我的這個people命名空間下面的類和方法時,只要把我的這個people.dll文件拷貝過去就ok了,不需要重新實現了,當然這樣的類庫必須是重用性特別高的,比如連接oracle的.dll類庫,否則我感覺沒太大必要,除非是了保證代碼安全。這樣別人在調用我的這個類庫時,他就不用管我內部到底是如何實現的了,這樣對后來的接手維護程序的人來說,不是一個天大的好事么?

 

2.2 反編譯

     反編譯前面的逆過程,有的時候我們對別人提供的dll類庫好奇的時候,想要研究他是如何實現的時候就需要反編譯。.dll文件一旦你生成之后,包括VS以及電腦一些常見的文本閱讀器都是打不開的,這時需要一個軟件Reflector軟件來打開.dll文件(不是所有的都能反編譯,最新版本可能反編譯能力要強點吧!有官網的)。

  軟件使用很簡單,打開people.dll。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM