首页 > 代码库 > Reflector的简单使用入门学习
Reflector的简单使用入门学习
通过这篇博文学习简单的Reflector的操作
首先新建一个项目
在这个项目中我们新建了一个类
public class People { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
在Main函数中我们做了以下操作,实例化了一个类并在控制台中打印了相关的信息
static void Main(string[] args) { People p = new People { Id = 1, Name = "test", Age = 12 }; Console.WriteLine("Id={0},Name={1},Age={2}", p.Id, p.Name, p.Age); Console.ReadLine(); }
将程序集拖入Reflector中
那看到这里,可能你会觉得奇怪
通过Reflector我们可以查看到,在我们定义一个简单的类的时候,编译器帮我们生成了三个私有的字段
[CompilerGenerated]private int <Age>k__BackingField; [CompilerGenerated]private int <Id>k__BackingField; [CompilerGenerated]private string <Name>k__BackingField;
通过标签CompilerGenerated我们可以知道,这是编译器帮我们内部生成的
查看Age属性下的方法
[CompilerGenerated]public void set_Age(int value){ this.<Age>k__BackingField = value;} [CompilerGenerated]public int get_Age(){ return this.<Age>k__BackingField;}
原来其编译器的内部还是先生成了一个私有的字段,在给属性附上字段的值
开到这里,你是不是明白了这和我们定义一个私有字段的值和公有字段的值供给外部调用是一样的呢
private private int id; public int Id { get { return id; } set { id = value; } } private string name; public string Name { get { return name; } set { name = value; } } private int age; public int Age { get { return age; } set { age = value; } }
好了,到这里,我们去看看Main
更多的Reflector反编译学习的http://www.cnblogs.com/edisonchou/p/4088959.html
Reflector的简单使用入门学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。