以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  C#,如何遍历类对象(转载)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=11833)


--  作者:admin
--  发布时间:11/9/2004 2:26:00 AM

--  C#,如何遍历类对象(转载)


发信人: Nineteen (-_-#!), 信区: DotNET
标  题: C#,如何遍历类对象(转载)
发信站: BBS 水木清华站 (Fri Dec  5 09:59:12 2003), 转信

C#,如何遍历类对象  
  
Key: C#,遍历类对象. Author: ArLi @ http://www.zpcity.com/arli/
//本例是将类cls_language 里所有的internal string 型的变量全部换成 test:  
Type type_cls_language = typeof(cls_language); // 假设类名 cls_language
cls_language objTmp = new cls_language();

// 设置为只获得 非public 并且 为静态的所有字段(也就是变量)
FieldInfo[] fdInfo = type_cls_language.GetFields(BindingFlags.NonPublic | BindingFlags.Static);

for(int i = 0; i < fdInfo.Length; i++) {
// 如果字段是string 型,并且是 internal 以上级别,并且不是const,并且不是 readonly
if (fdInfo[i].FieldType != typeof(string) || ! fdInfo[i].IsAssembly || fdInfo[i].IsLiteral || fdInfo[i].IsInitOnly) continue;

// 先获取名称
string obj_name = fdInfo[i].Name;
// 要替换的值
string fd_Text = "test";

// 替换它
fdInfo[i].SetValue(objTmp, fd_Text);

// 本例只是替换字段(GetFields),还有GetMethods、GetProperties 等等可以替换方法、属性(也就是访问器),用法和上面一样。  
  
2003.9.10  

--
——长夜漫漫,无心睡眠……难道狼妹妹也睡不着吗?


※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.206.3.3]
上一篇
返回上一页
回到目录
回到页首



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms