永发信息网

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

答案:4  悬赏:60  手机版
解决时间 2021-03-25 03:13
C#怎么遍历一个对象里面的全部属性 包括子类的属性?
最佳答案
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个子类 我要获得每一个子类的属性和方法 能不这样直接写么?
全部回答
这个得用反射了,你在百度里面搜索关键字:C#反射
类实例.GetType().GetProperties();类实例.GetType()。GetMehtods();追问我把需求讲的更加具体了,帮忙解答下呗。谢谢了。
留联系看,我的思路是遍历程序集内所有类,所有属性。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
艾尔猫粮好吗?
福特翼虎1.6T变1.5T没多大差别
类似商标,可否根据优先权,删除后来注册的那
全电压的开关电源,为什么电压越高PF值越低?
毕节市那里小猪多
求能复制粘贴的特别小的“水鬼”两个字
不锈钢锻打后一般采用什么退火工艺?
怎么知道是基带传输,频带传输,还是宽带传输
求禁忌之旅, 陌小神的
单考星海声表系自己请钢琴伴奏一般多少钱?
乙烷除杂,除乙烯能通过足量溴水的洗气瓶么?
看图写话给爷爷的礼物?爷爷收到礼物后
mvp汽车是什么意思
原本保守内向的女孩突然在我面前穿着打扮很性
中国怎么有的字谜
推荐资讯
我被骗了800元,能报警立案吗
怎样吃鸡时关闭输入法
有个年龄相差不大和年龄相差很大的妹妹有什么
“八水绕长安”哪八水?
柴油机没放水冬天冻了,怎么知道是机体冻坏还
刚刚安装了net framework 4.6.2后,打开我的
四中初2谁打架最厉害
篮球让1分什么意思;忘记了,是怎么回事啊!
35岁以上的未婚男人,能嫁吗
老铁,帮我看一下,她喜欢我吗,我能追上她不
大同十矿和尚咀煤矿股份制?知情人说一说。急
20元一斤糖买7颗,一颗多少钱?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?