显式调用委托对象(高级).txt

来自「C# 是创新性的新式编程语言」· 文本 代码 · 共 39 行

TXT
39
字号
优点:
1.捕获对个对象的返回值。
2.调用委托时一个失败,不会阻塞其它的。


GetInvocationList 返回委托对象列表,可以显式调用委托链上的每个一个对象。

static void Main(string[] args)
		{

			Set.Feedback fb1=new Set.Feedback(App.FeedbackToConsole);
			Set.Feedback fb2=new Set.Feedback(App.FeedbackToMsgBox);
			Set.Feedback fbChain=(Set.Feedback)Delegate.Combine(fb1,fb2);

			//返回调用链表
			Delegate[] arrayOfDelegates=fbChain.GetInvocationList();

			Set setOfItems=new Set(5);

			StringBuilder report=new StringBuilder();
			foreach(Set.Feedback fb in arrayOfDelegates)
			{
				try
				{
					setOfItems.ProcessItems(fb);
				}
				catch(Exception e)
				{
					Object component=fb.Target;
					report.AppendFormat("Failed to ProcessItems form {1}{2}{0} Error:{3}{0}{0}",
						Environment.NewLine,
						((component==null)?"":component.GetType()+"."),
						fb.Method.Name,e.Message);
					Console.WriteLine(report.ToString());
				}
			}

			
		}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?