像在C++中这个方法一个ID对应一个函数,在结构中只要调用这个结构数组就可以对函数进行调用
在C#中怎么实现这种方法。如下所示struct decodeCMD {                             // Structure associates
    UINT Code;                                 // menu IDs with a 
    LRESULT (*Fxn)(HWND, WORD, HWND, WORD);    // function.
};const struct decodeCMD MainCommandItems[] = {    1, DoMainCommandEnter,
    2, DoMainCommandExit,
    3, DoMainCommandViewDrive,
    4, DoMainCommandMapDrive,
    5, DoMainCommandFreeDrive,
};
在C#中怎么实现上面的代码,定义结构decodeCMD不知道怎么定义,老是有问题。解决问题马上就给分。多谢高人指点一下!!

解决方案 »

  1.   

    能够说的清楚一点吗,我用IntPtr来做好像还是不行
    如void IntrPtr Fxn(object obj,byte bytes); 
    编译不过呀
      

  2.   

    void   IntPtr   Fxn(object   obj,byte   bytes);  
      

  3.   

    IntPtr只是一个灵活的数据(指针)类型,此处你要调用函数需要delegate(委托)
      

  4.   

    我使用委托如下面这种方法
    public delegate void test(object obj,byte bytes);        public test aa;
            void intil()
            {
                aa += new test(messg);
                aa += new test(bbb);
            }        void evenhand(object obj,byte bytes)
            {
                if (aa != null)
                {
                    aa(obj,bytes);
                }        }        void messg(object obj, byte bytes)
            {
                int i=0;            i++;
            }        void bbb(object obj, byte bytes)
            {
                int i=0;            i++;
            }我调用evenhand(object obj,byte bytes)后每个函数都执行一次,如果这个委托的函数很多,那么效率就不高了。
    有没有好一点放方法,像调用C++的数组一样,一个ID对应一个函数
      

  5.   

    多个类从一个接口或其它类继承,
    函数写到类里,类里带上ID,放到HashTable中,
      

  6.   

    我用C#不是很长时间,请问一下HashTable要怎么用呀
    lianshaohua你说的是一个类就要对应一个函数吗?
    能不能简单示例一下。