首页 新闻 会员 周边 捐助

如何用反射获取结构体内字段的长度?

1
悬赏园豆:20 [已关闭问题] 关闭于 2010-09-27 10:53

描述:用反射获得结构体内字段的长度,字段可能是数组形式的。

输入:一个结构体变量,其内包含public的字段(字段可能是数组)。

输出:各个字段的长度。

苍岭飞龙的主页 苍岭飞龙 | 初学一级 | 园豆:0
提问于:2010-09-07 11:14
< >
分享
所有回答(2)
0


struct demo
{
    public string Name="abcdefj";

}

static void Main(int[] arg)

{
            demo d=new demo();

            Type t = d.GetType();
            FieldInfo[] fields = t.GetFields(BindingFlags.Public);

            foreach (FieldInfo f in fields)
            {
              object o=  f.GetValue(d);

                //再对 o 进行你要的操作;
            }

}

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-07 11:35
0

不太懂你的问题。

      Type securityType = typeof(类名);

    FieldInfo[] fields = securityType.GetFields();//获得所有字段名
            FieldInfo field = null;
            for (int i = 0; i < fields.Length; i++)
            {
                if (fields[i].Name == "某个字段名")
                {
                    field = fields[i];
                    break;
                }
            }

    field.GetValue(类变量名);//获得某个特定字段的数据

希望对你有用!

aguiagui | 园豆:305 (菜鸟二级) | 2010-09-07 16:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册