首页 > 编程 > C# > 正文

C#反射技术的简单操作

2024-09-07 17:05:39
字体:
来源:转载
供稿:网友

为了动态地分配或赋值类型实例的属性,我们必须首先获取实例或类型的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(),操作方法同上。

以上就是错新技术频道给大家介绍的C#反射技术的简单操作,通过上文的了解大家都知道了吗?如果大家还想了解更多的内容就关注错新技术频道吧!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表