首页 新闻 搜索 专区 学院

Invoke的问题

0
悬赏园豆:20 [已解决问题] 解决于 2010-01-17 12:49


        private void button1_Click(object sender, EventArgs e)
        {
            string data = "数据";
            GetData(new MethodInvoker(delegate()
            {
                Set(data);
            }));
        }
       
        /// <summary>
        /// 通过参数调用不同的方法
        /// </summary>
        /// <param name="method"></param>
        public static  void GetData(Delegate method)
        {
            method.Method.Invoke(null, null);
        }

        /// <summary>
        /// 实际被调用方法
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string Set(string str)
        {
            MessageBox.Show(str.ToString());
            return str;
        }

 

出现异常 TargetException 非静态方法需要一个目标。

请大家帮我解决一下。谢谢

wuyou331的主页 wuyou331 | 初学一级 | 园豆:101
提问于:2010-01-06 21:38
< >
分享
最佳答案
0

public static void GetData(Delegate method, object target) {

  method.Method.Invoke(target, null);

}

button1_Click(object sender, EventArgs e) {
            string data = "数据";
            GetData(new MethodInvoker(delegate()
            {
                Set(data);
            }), this);

}

收获园豆:20
Gray Zhang | 专家六级 |园豆:17610 | 2010-01-06 23:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册