委托后加?.Invoke
先上案例
using System;namespace YhTest1
{public delegate void GreetDelegate(string name);class Program{private static void English(string name){Console.WriteLine("Hello!" + name);}private static void Chinse(string name){Console.WriteLine("你好!" + name);}private static void GreetPeople(string name, GreetDelegate greetDelegate){greetDelegate(name);}static void Main(string[] args){GreetDelegate test1;test1 = English;GreetPeople("lihua", test1);test1 = null;test1?.Invoke("lihua");test1 = Chinse;GreetPeople("梨花", test1);Console.WriteLine("Ending.........");}}
}
解释就是:
判断一下这个委托是不是为null;如果是则不执行委托,如果不是则执行该委托;
invoke和begininvoke的区别
invoke:在拥有此空间基础窗口句柄的线程上执行指定的委托
begininvoke:在创建控件的基础句柄所在的线程上异步执行指定的委托
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
