加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 智能机器人、大数据、CDN、图像分析、语音技术!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C#反射技术的简单操作设置

发布时间:2023-06-03 15:30:24 所属栏目:语言 来源:未知
导读:   为了动态地分配或赋值类型实例的属性,我们必须首先获取实例或类型的Type,错新技术频道已经为大家整理了C#反射技术的简单操作,希望对你学习这方面知识有帮助。



  首先建立一
  为了动态地分配或赋值类型实例的属性,我们必须首先获取实例或类型的Type,错新技术频道已经为大家整理了C#反射技术的简单操作,希望对你学习这方面知识有帮助。
 
  首先建立一个测试的类
 
  复制代码 代码如下:
 
  public class MyClass
 
  {
 
  public int one { set; get; }
 
  public int two { set; get; }
 
  public int five { set; get; }
 
  public int three { set; get; }
 
  public int four { set; get; }
 
  }
 
  然后编写反射该类的代码

  复制代码 代码如下:

  MyClass obj = new MyClass();
 
  Type t = typeof(MyClass);
 
  //循环赋值
 
  int i = 0;
 
  foreach (var item in t.GetProperties())
 
  {
 
  item.SetValue(obj, i, null);
 
  i += 1;
 
  }
 
  //单独赋值
 
  t.GetProperty("five").SetValue(obj, 11111111, null);
 
  //循环获取
 
  StringBuilder sb = new StringBuilder();
 
  foreach (var item in t.GetProperties())
 
  {
 
  sb.Append("类型:" + item.PropertyType.FullName + " 属性名:" + item.Name + " 值:" + item.GetValue(obj, null) + "<br />");
 
  }
 
  //单独取值
 
  int five = Convert.ToInt32(t.GetProperty("five").GetValue(obj, null));
 
  sb.Append("单独取five的值:" + five);
 
  string result = sb.ToString();
 
  Response.Write(result);
 
  测试显示结果:
 
  类型:System.Int32 属性名:one 值:0
 
  类型:System.Int32 属性名:two 值:1
 
  类型:System.Int32 属性名:five 值:11111111
 
  类型:System.Int32 属性名:three 值:3
 
  类型:System.Int32 属性名:four 值:4
 
  单独取five的值:11111111
 
  好了,了解了类的属性反射使用后,聪明的你可能就想到了方法也是可以这样做的,即t.GetProperties()改为t.GetMethods(),操作方法同上。
 

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章