c# 反射列子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
 
            Assembly nc = Assembly.LoadFile(Environment.CurrentDirectory + "\\PersonOperator.dll");
 
            Type t = nc.GetType("PersonOperator.Person",true);
 
            object o = Activator.CreateInstance(t, new object[] { "你", 20 });
 
            FieldInfo f = t.GetField("name");
            f.SetValue(o, "奥特你们");
 
            PropertyInfo p = t.GetProperty("Name");
            p.SetValue(o, "你哈", null);
 
            MethodInfo m = t.GetMethod("Play", new Type[] { });
            m.Invoke(o, null);
 
 
            MethodInfo m1 = t.GetMethod("Play", new Type[] { typeof(string),typeof(string) });
            m1.Invoke(o, new object[]{"低价傲人","你好"});
 
 
            Console.ReadKey();
            
 
 
        
 
 
 
 
             
             
 
        }
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace PersonOperator
{
  public  class Person
    {
      public string name;
      public int age;
      public string gender;
 
 
      public string Name
      {
          get { return name; }
          set { name = value; }
      }
      public int Age
      {
          get { return age; }
          set { age = value; }
      }
      public string Gender
      {
          get { return gender; }
          set { gender = value; }
      }
 
      public Person(string _name,int _age)
      {
          name = _name;
          age = _age;
      }
 
      public void Play()
      {
          Console.WriteLine(name+"去打篮球");
      }
      public void Play(string name2,string name3)
      {
          Console.WriteLine(name + "和"+name2+"去打篮球"+name3+"奥特曼");
      }
    }
}

  

posted @   尘梦  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示