我曾经遗漏的知识点
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;
..未完待续
浙公网安备 33010602011771号