printDelegate()与printDelegate.Invoke()

示例代码如下:

delete void PrintDeletegate();
void Print2()
{
  //...若干行代码
}

void Main(){
  //new一个委托
  var printDeletegate = new PrintDeletegate(Print2);

  //调用委托,以下两种方式都可以
  printDeletegate();
  printDeletegate.Invoke();
}


那么printDelegate()与printDelegate.Invoke()有什么差异呢?

printDelegate()是printDelegate.Invoke()的语法糖。

编译器遇到printDelegate()时,会将它转换为printDelegate.Invoke()。

Invoke()方法是委托类型本身提供的一个方法,用于显示地调用委托所指向的方法。

另外, Invoke()方法在多线程环境下也有特殊用途:
Invoke()方法可以用在拥有该控件的线程上执行委托方法,一避免跨线程操作的异常。

posted @   青云Zeo  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示