private Dictionary<bool, Action> dic; 
    protected void Page_Load(object sender, EventArgs e)
    {
        string value = Request.Form["hName"] ?? "";        bool result;        if (bool.TryParse(value, out result))
        {
            dic = new Dictionary<bool, Action>();            dic.Add(true, Confirm);
            dic.Add(false, Cancel);            dic[result]();
        }  
    }    protected void btnCallBack_Click(object sender, EventArgs e)
    {
        // 先执行一段代码  
        lit.Text = DateTime.Now.ToString("yyyy-MM-dd");
        //弹出confirm          ClientScript.RegisterStartupScript(GetType(), "confirm", "CustomSubmit();", true);
    }    //确认时执行的代码  
    private void Confirm()
    {
        lit.Text = "确认";
    }    //取消时执行的代码  
    private void Cancel()
    {
        lit.Text = "取消";
    }  
这是非哥博客中对于confirm的改写,Dictionary<bool, Action> dic中ACTION是什么类型,还有我调试的时候if (bool.TryParse(value, out result))中的代码一直没有运行过,这段代码有什么作用

解决方案 »

  1.   

    ACTION应该是个枚举类型吧,当然这个只是猜的,具体要看他怎么定义的了。
    if (bool.TryParse(value, out result))
    这个表示的是 是否可以将value转换为bool类型,如果可以那么走if里面,result是返回值,就是value转换成bool类型后的值。
      

  2.   

    鄙人认为action是指 Confirm()
      Cancel()
     从dic = new Dictionary<bool, Action>();   dic.Add(true, Confirm);
       dic.Add(false, Cancel);
    看出来的@非哥
      

  3.   

    没有,我自己试验过,ACTION就是一个类型,和枚举无关,if (bool.TryParse(value, out result))
      {
      dic = new Dictionary<bool, Action>();  dic.Add(true, Confirm);
      dic.Add(false, Cancel);  dic[result]();
      }   中if里面的代码一直没执行过,dic一直为null,但是最后直接执行了dic[result]();, dic = new Dictionary<bool, Action>();
      dic.Add(true, Confirm);
      dic.Add(false, Cancel);一直没执行,但是dic突然就有值了,这里一直很纠结。不知道为什么。
      

  4.   

    即便是这样理解,但是
    dic = new Dictionary<bool, Action>();
      dic.Add(true, Confirm);
      dic.Add(false, Cancel);这段代码一直没运行,最后却直接运行了dic[result]();,跳过了dic = new Dictionary<bool, Action>();
      dic.Add(true, Confirm);
      dic.Add(false, Cancel);这段代码,dic突然出现了值,何解。我把地址发出来吧,希望大家能够帮忙看看http://blog.csdn.net/Sandy945/article/details/5716632
      

  5.   

    ACTION就是System.Action 委托 具体的你可以查看下MSDN,刚才没仔细看
      

  6.   

    MSDN没找有关于System.Action 委托的描述,百度了一下,也没有太多的资料,基本的ACTION委托能看懂,也能理解,但是在这个例子中的Dictionary中的使用还是没看明白。不过还是谢谢了