但我们并没有(直接)调用程序集中的函数,这就是反射的作用。模拟出程序集中的函数实现。
点击
结果:
。。。。等等
遍历了程序集中的所有方法和属性。也就是说通过反射我们能知道程序集里有什么方法函数和属性。
3.通过复杂的例子理解更多反射的用法,语法
解决方案构造方法与简单例子类似。
直接上代码,以后用到相关语法的时候可以学习着写:
类库中的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Models
{
public class User
{
/// <summary>
/// 字段
/// </summary>
public string Field;
private int age;
/// <summary>
/// 属性:年龄
/// </summary>
public int Age
{
get { return age; }
set { age = value; }
}
private string name;
/// <summary>
/// 属性:名称
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// 无参数构造函数
/// </summary>
public User()
{
this.name = "调用了无参数的构造函数";
}
/// <summary>
/// 带参构造函数
/// </summary>
public User(string name)
{
this.Name = name;
// this.Age = age;
}
/// <summary>
/// public方法
/// </summary>
public string PublicClassMethod()
{
return string.Format("您反射了一个Public方法");
}
/// <summary>
/// private方法
/// </summary>
private string PrivateClassMethod()
{
return string.Format("您反射了一个Private方法");
}
/// <summary>
/// static方法
/// </summary>
public static string StaticMethod()
{
return "您反射了一个Static方法";
}
/// <summary>
/// 无带参方法
/// </summary>
public string Show1()
{
return string.Format("我的名字叫:{0},今年{1}岁了!", this.Name, this.Age);
}
/// <summary>
/// 带参方法
/// </summary>
public string Show(string aihao)
{
return string.Format("大家好,我的爱好是:{0}!", aihao);
}
/// <summary>
/// 自定义事件类型
/// </summary>
public event EventHandler eventHandler;
/// <summary>
/// 处理事件
/// </summary>
public void DoEvent()
{
eventHandler(null, EventArgs.Empty);
}
}
} |