C#怎么遍历一个对象里面的全部属性 包括子类的属性?
假设我有个类A,A有三个子类B,C,D。BCD有各自的方法和属性,如何遍历A得到B,C,D的属性和方法呢?...
假设我有个类A ,A 有三个子类 B,C,D 。BCD 有各自的方法和属性,如何遍历A 得到B,C,D的属性和方法呢?
展开
4个回答
展开全部
Type t = tc.GetType();//获得该类的Type
//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (PropertyInfo pi in t.GetProperties
{
object value1 = pi.GetValue(tc, null));//用pi.GetValue获得值
string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
//获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数
if(value1.GetType() == typeof(int))
{
//进行你想要的操作
}
}
public int Pid
{
get { return pid; }
set { pid = value; }
}
//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
foreach (PropertyInfo pi in t.GetProperties
{
object value1 = pi.GetValue(tc, null));//用pi.GetValue获得值
string name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
//获得属性的类型,进行判断然后进行以后的操作,例如判断获得的属性是整数
if(value1.GetType() == typeof(int))
{
//进行你想要的操作
}
}
public int Pid
{
get { return pid; }
set { pid = value; }
}
更多追问追答
追答
你实例化ClassA后 , ClassA ca = new ClassA();
直接用ca.b.Bname就可以了
展开全部
类实例.GetType().GetProperties();类实例.GetType()。GetMehtods();
追问
我把需求讲的更加具体了,帮忙解答下呗。谢谢了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
留联系看,我的思路是遍历程序集内所有类,所有属性。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个得用反射了,你在百度里面搜索关键字:C#反射
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询