• Reflector的简单使用入门学习


     

    通过这篇博文学习简单的Reflector的操作

    首先新建一个项目

    image

    在这个项目中我们新建了一个类

    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中

    QQ截图20141114111127

    那看到这里,可能你会觉得奇怪

    image

    通过Reflector我们可以查看到,在我们定义一个简单的类的时候,编译器帮我们生成了三个私有的字段

    [CompilerGenerated]
    private int <Age>k__BackingField;
     
    [CompilerGenerated]
    private int <Id>k__BackingField;
     
    [CompilerGenerated]
    private string <Name>k__BackingField;

    通过标签CompilerGenerated我们可以知道,这是编译器帮我们内部生成的

    查看Age属性下的方法

    image

    [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

    image

    更多的Reflector反编译学习的http://www.cnblogs.com/edisonchou/p/4088959.html

  • 相关阅读:
    truncate、delete和drop的异同点
    改机器名处理
    全文目录
    利用TypePerf.exe
    wait_stats状态初始化
    Android模拟器 SD卡的权限详解
    Android Animation学习笔记
    Android学习笔记
    Android Activity和Intent机制学习笔记
    Android学习笔记33:Intent介绍及Intent在Activity中的使用方法
  • 原文地址:https://www.cnblogs.com/ilooking/p/4096832.html
Copyright © 2020-2023  润新知