委托后加?.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:在创建控件的基础句柄所在的线程上异步执行指定的委托


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部