• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#学习笔记----自定义类库及反编译

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#winform用子窗体刷新父窗体,子窗体改变父窗体控件的值发布时间:2022-07-13
下一篇:
VisualC#.NET生成OfficeCOM外接程序发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap