我曾经遗漏的知识点

1、神奇的finally

    private void MethodA()
    {
            try
            {
          return;
            }
            catch (Exception)
            {

            }
            finally
            {
                MessageBox.Show("finally");//问题:这里会执行吗?
            }
    }

答案:会

2、委托取消

        delegate void DelegateA();
        static event DelegateA DelegateAHandle;
        static void Main(string[] args)
        {
            //代码段1:
            //DelegateA delegateA = new DelegateA(MethodA);
            //DelegateAHandle += delegateA;
            //DelegateAHandle -= delegateA;
            //if (DelegateAHandle != null) DelegateAHandle();

            //代码段2:
            DelegateA delegateA = new DelegateA(MethodA);
            DelegateAHandle += new DelegateA(MethodA);
            DelegateAHandle -= new DelegateA(MethodA);
            if (DelegateAHandle != null) DelegateAHandle();
            
            //问题:代码段1和代码段2的执行结果有区别吗?

            Console.Read();
        }

        private static void MethodA()
        {
            Console.WriteLine("方法MethodA被执行");
        }

答案:没有区别,都没有执行到MehodA;

 

..未完待续

posted @ 2014-01-22 11:38  牧马  阅读(116)  评论(0)    收藏  举报