首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读2632次
VS.NET C# 枚举类的成员变量

由于SGIP的SUBMIT命令大约有22个字段,刚开始测试的时候是手动组包,测试通过发送成功后觉得应该有个简单的办法,不要这样变态的:stmp="0";    Array.Copy(encoder.GetBytes(stmp),0,tmpmsg,offset,stmp.Length);//source_addr    offset+=6;

想来想去,从FOREACH想到遍历,然后就找资料,遍历类的公共成员变量,我一向讨厌那个动不动就GET SET,明明什么都没有干,也要GET SET一遍。

SGIPSubmitStruct d=new SGIPSubmitStruct();
d.spnum="123";
Type MyType = d.GetType();
FieldInfo[] fields = MyType.GetFields( BindingFlags.Instance &line;BindingFlags.Public &line; BindingFlags.GetField );

for (int i = 0; i < fields.Length; i++)
{
 Trace.WriteLine(fields[i].Name);Trace.WriteLine(fields[i].GetValue(d));
}
Instance  指定实例成员将包括在搜索中。

FieldInfo 类  [C#]请参见
发现字段特性并提供对字段元数据的访问权。
从元数据中获取字段信息。FieldInfo 没有公共构造函数。通过调用 Type 对象的 GetFields 或 GetField 方法获取 FieldInfo 对象。
字段是在类中定义的变量。FieldInfo 提供对类中字段的元数据的访问权并为字段提供动态 set 和 get 功能。直到在对象上调用了 invoke 或 get 时,该类才加载到内存中。

using System;
using System.Reflection;

public class FieldInfoClass
{
    public int myField1 = 0;
    protected string myField2 = null;
    public static void Main()
    {
        FieldInfo[] myFieldInfo;
        Type myType = typeof(FieldInfoClass);
        // Get the type and fields of FieldInfoClass.
        myFieldInfo = myType.GetFields(BindingFlags.NonPublic &line; BindingFlags.Instance
            &line; BindingFlags.Public);
        Console.WriteLine("\nThe fields of " +
            "FieldInfoClass are \n");
        // Display the field information of FieldInfoClass.
        for(int i = 0; i < myFieldInfo.Length; i++)
        {
            Console.WriteLine("\nName            : { 0 }", myFieldInfo[i].Name);
            Console.WriteLine("Declaring Type  : { 0 }", myFieldInfo[i].DeclaringType);
            Console.WriteLine("IsPublic        : { 0 }", myFieldInfo[i].IsPublic);
            Console.WriteLine("MemberType      : { 0 }", myFieldInfo[i].MemberType);
            Console.WriteLine("FieldType       : { 0 }", myFieldInfo[i].FieldType);
            Console.WriteLine("IsFamily        : { 0 }", myFieldInfo[i].IsFamily);
        }
    }
}


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/FieldInfo.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1120199468

2005年7月1日14:31星期五  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1839
在线: 22||用户: 2576 [列表]
今日:2259||到访:2854113
Rss:885231||评论:1604

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8