永发信息网

C#怎么遍历一个对象里面的全部属性 包括子类的属性?

答案:4  悬赏:60  手机版
解决时间 2021-03-25 03:13
  • 提问者网友:原来太熟悉了会陌生
  • 2021-03-24 15:05
C#怎么遍历一个对象里面的全部属性 包括子类的属性?
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-03-24 16:19
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; }
}追问
我的意思是遍历 ClassA ,分别得到BName Bid Cname Cid 四个结果,按你的方式 我只能得到b,c
要如何实例化 B C 来进行再一层的遍历呢?

追答你实例化ClassA后 , ClassA ca = new ClassA();
直接用ca.b.Bname就可以了追问这个我是知道的,但是如果A里有100个子类 我要获得每一个子类的属性和方法 能不这样直接写么?
全部回答
  • 1楼网友:持酒劝斜阳
  • 2021-03-24 18:40
这个得用反射了,你在百度里面搜索关键字:C#反射
  • 2楼网友:纵马山川剑自提
  • 2021-03-24 18:08
类实例.GetType().GetProperties();类实例.GetType()。GetMehtods();追问我把需求讲的更加具体了,帮忙解答下呗。谢谢了。
  • 3楼网友:山君与见山
  • 2021-03-24 17:28
留联系看,我的思路是遍历程序集内所有类,所有属性。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯