struct结构成员访问的问题!!在线等!!!!

jqiu780423 2007-02-13 02:22:55
自定义二个struct
public struct test
{
public String tmp001;
public String tmp002;
public String tmp003;
public String tmp004;
public String tmp005;

};
例如我想引用tmp001这个成员,除了 test.tmp001 之外,还有没有其他方法?
就是最好能动态的指定需要访问的成员.比如,传给我一个数值2,我就去访问tmp002成员,传给我一个20,我就访问tmp020这个成员

如果这样的想法实现不了,也请高手给定个性,我好死了这个心
...全文
337 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jqiu780423 2007-02-13
  • 打赏
  • 举报
回复
哈哈,谢谢各位大人,Macosx的方法可行,he_8134的方法,以及jetxia 和tjvictor的例子都是可行的,刚才脑子上有个坑呢,自己想不明白.多谢,多谢,结贴了!
jcyluck 2007-02-13
  • 打赏
  • 举报
回复
Macosx() 的方法不行吗?

如果楼主的结构仅仅是这么简单的
可以用数组来得更快
jqiu780423 2007-02-13
  • 打赏
  • 举报
回复
我是要设置struct里面的值啊,刚才我看了个位大人给的东西,好像反射对于struct没有什么效果啊,在invokemember中,会说tmp001这个字段不存在
我要设置struct里面的成员值
he_8134 2007-02-13
  • 打赏
  • 举报
回复
public static string GetTestValue(test t,int i) {
string str;
if (i < 10)
{
str = "tmp00";
}
else if (i < 100)
{
str = "tmp0";
}
else {
str = "tmp";
}
return (string)typeof(test).GetField(str + i).GetValue(t);
}
landy_shasha 2007-02-13
  • 打赏
  • 举报
回复
mark
---------------------------------------
俺兜兜里有糖
lizhizhe2000 2007-02-13
  • 打赏
  • 举报
回复
1.用反射
2.用if或switch判断
csShooter 2007-02-13
  • 打赏
  • 举报
回复
mark+up
zyip 2007-02-13
  • 打赏
  • 举报
回复
学习了
灰太狼 2007-02-13
  • 打赏
  • 举报
回复
如果你的变量名都像tmp00x这样有规律的话,用反射就可以了,
参见
http://blog.csdn.net/tjvictor/archive/2007/01/24/1492079.aspx
jetxia 2007-02-13
  • 打赏
  • 举报
回复
参考 我写的这个
http://blog.csdn.net/jetxia/archive/2007/02/09/1505985.aspx
Macosx 2007-02-13
  • 打赏
  • 举报
回复
GetValue(t) 写落了
Macosx 2007-02-13
  • 打赏
  • 举报
回复
test t = new test();
t.tmp001 = "HAHA";
Console.WriteLine(typeof(test).GetFields()[0].GetValue );
int i=1;
Console.WriteLine(typeof(test).GetField("tmp00" + i.ToString()).GetValue );

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧